Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testing full build of various #351

Closed
wants to merge 9 commits into from
Prev Previous commit
Next Next commit
add soapy-full baseimage
wiedehopf committed Jan 10, 2025
commit 2c0621d7653cf4313bb90184bb967cdc850d2c88
51 changes: 51 additions & 0 deletions .github/workflows/deploy_ghcr.yml
Original file line number Diff line number Diff line change
@@ -447,6 +447,57 @@ jobs:
tags: ghcr.io/sdr-enthusiasts/docker-baseimage:soapyrtlsdr
labels: ${{ steps.meta.outputs.labels }}

deploy_soapy-full:
name: Deploy soapy-full to ghcr.io
needs: [deploy_soapyrtlsdr]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
# Check out our code
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 2

# Log into ghcr (so we can push images)
- name: Login to ghcr.io
uses: docker/[email protected]
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

# Get metadata from repo
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/[email protected]
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

# Set up QEMU for multi-arch builds
- name: Set up QEMU
uses: docker/[email protected]

# Set up buildx for multi platform builds
- name: Set up Docker Buildx
id: buildx
uses: docker/[email protected]

# Build & Push Dockerfile (only push if this action was NOT triggered by a PR)
- name: Build & Push ghcr.io/sdr-enthusiasts/docker-baseimage:soapy-full
uses: docker/[email protected]
with:
context: .
file: ./Dockerfile.soapy-full
no-cache: true
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ghcr.io/sdr-enthusiasts/docker-baseimage:soapy-full
labels: ${{ steps.meta.outputs.labels }}

deploy_dump978-full:
name: Deploy dump978-full to ghcr.io
needs: [deploy_soapyrtlsdr]
110 changes: 110 additions & 0 deletions Dockerfile.soapy-full
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
FROM ghcr.io/sdr-enthusiasts/docker-baseimage:soapyrtlsdr

SHELL ["/bin/bash", "-o", "pipefail", "-c"]

# hadolint ignore=DL3008,SC2086,DL4006,SC2039
RUN set -x && \
TEMP_PACKAGES=() && \
KEPT_PACKAGES=() && \
# packages needed to install
TEMP_PACKAGES+=(git) && \
# packages needed to build
TEMP_PACKAGES+=(build-essential) && \
TEMP_PACKAGES+=(cmake) && \
TEMP_PACKAGES+=(pkg-config) && \
TEMP_PACKAGES+=(libusb-1.0-0-dev) && \
# dependencies for SoapySDR
# install packages
apt-get update && \
apt-get install -y --no-install-recommends \
"${KEPT_PACKAGES[@]}" \
"${TEMP_PACKAGES[@]}" \
&& \
# install sdrplay
curl --location --output /tmp/install_sdrplay.sh https://raw.githubusercontent.com/sdr-enthusiasts/install-libsdrplay/main/install_sdrplay.sh && \
chmod +x /tmp/install_sdrplay.sh && \
/tmp/install_sdrplay.sh && \
# Deploy SoapyRTLTCP
git clone https://github.com/pothosware/SoapyRTLTCP.git /src/SoapyRTLTCP && \
pushd /src/SoapyRTLTCP && \
mkdir -p /src/SoapyRTLTCP/build && \
pushd /src/SoapyRTLTCP/build && \
cmake ../ -DCMAKE_BUILD_TYPE=Release && \
make all && \
make install && \
popd && popd && \
ldconfig && \
# deploy SoapySDRPlay
git clone https://github.com/pothosware/SoapySDRPlay.git /src/SoapySDRPlay && \
pushd /src/SoapySDRPlay && \
mkdir build && \
pushd build && \
cmake .. && \
make && \
make install && \
popd && \
popd && \
ldconfig && \
# deploy libmirisdr
git clone https://github.com/ericek111/libmirisdr-5.git /src/libmirisdr-5 && \
pushd /src/libmirisdr-5 && \
mkdir build && \
pushd build && \
cmake .. && \
make && \
make install && \
popd && popd && \
# deploy SoapyMiri
git clone https://github.com/ericek111/SoapyMiri.git /src/SoapyMiri && \
pushd /src/SoapyMiri && \
mkdir build && \
pushd build && \
cmake .. && \
make -j4 && \
make install && \
popd && popd && \
# deploy airspyhf
git clone https://github.com/airspy/airspyhf.git /src/airspyhf && \
pushd /src/airspyhf && \
mkdir -p /src/airspyhf/build && \
pushd /src/airspyhf/build && \
cmake ../ -DCMAKE_BUILD_TYPE=Release -DINSTALL_UDEV_RULES=ON && \
make && \
make install && \
ldconfig && \
popd && popd && \
# Deploy SoapyAirspyHF
git clone https://github.com/pothosware/SoapyAirspyHF.git /src/SoapyAirspyHF && \
pushd /src/SoapyAirspyHF && \
mkdir -p /src/SoapyAirspyHF/build && \
pushd /src/SoapyAirspyHF/build && \
cmake ../ -DCMAKE_BUILD_TYPE=Release && \
make all && \
make install && \
popd && popd && \
ldconfig && \
# deploy airspyone host
git clone https://github.com/airspy/airspyone_host.git /src/airspyone_host && \
pushd /src/airspyone_host && \
mkdir -p /src/airspyone_host/build && \
pushd /src/airspyone_host/build && \
cmake ../ -DINSTALL_UDEV_RULES=ON && \
make && \
make install && \
ldconfig && \
popd && popd && \
# Deploy SoapyAirspy
git clone https://github.com/pothosware/SoapyAirspy.git /src/SoapyAirspy && \
pushd /src/SoapyAirspy && \
mkdir build && \
pushd build && \
cmake .. && \
make && \
make install && \
popd && \
popd && \
# Clean up
apt-get remove -y "${TEMP_PACKAGES[@]}" && \
apt-get autoremove -q -o APT::Autoremove::RecommendsImportant=0 -o APT::Autoremove::SuggestsImportant=0 -y && \
rm -rf /src/* && \
bash /scripts/clean-build.sh