Android github actions: Producing signed release builds together with… #9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Binaries | ||
|
Check failure on line 1 in .github/workflows/build_all.yml
|
||
| on: | ||
| push: | ||
| branches-ignore: | ||
| - nightly | ||
| pull_request: | ||
| branches-ignore: | ||
| - nightly | ||
| permissions: | ||
| contents: write # Required for creating releases and uploading files | ||
| actions: read # Standard workflow permission | ||
| env: | ||
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | ||
| BUILD_TYPE: Release | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| jobs: | ||
| build_windows: | ||
| runs-on: windows-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Build Environment | ||
| run: cmake -E make_directory ${{runner.workspace}}/build | ||
| - name: Download PothosSDR | ||
| run: Invoke-WebRequest -Uri "https://downloads.myriadrf.org/builds/PothosSDR/PothosSDR-2020.01.26-vc14-x64.exe" -OutFile ${{runner.workspace}}/pothos.exe | ||
| - name: Install PothosSDR | ||
| run: mkdir "C:/Program Files/PothosSDR" ; 7z x ${{runner.workspace}}/pothos.exe -o"C:/Program Files/PothosSDR/" | ||
| - name: Download libusb | ||
| run: Invoke-WebRequest -Uri "https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z" -OutFile ${{runner.workspace}}/libusb.7z | ||
| - name: Patch Pothos with earlier libusb version | ||
| working-directory: ${{runner.workspace}} | ||
| run: 7z x libusb.7z -olibusb_old ; rm "C:/Program Files/PothosSDR/bin/libusb-1.0.dll" ; cp "libusb_old/MS64/dll/libusb-1.0.dll" "C:/Program Files/PothosSDR/bin/" ; rm "C:/Program Files/PothosSDR/lib/libusb-1.0.lib" ; cp "libusb_old/MS64/dll/libusb-1.0.lib" "C:/Program Files/PothosSDR/lib/" | ||
| - name: Download librtlsdr | ||
| run: Invoke-WebRequest -Uri "https://ftp.osmocom.org/binaries/windows/rtl-sdr/rtl-sdr-64bit-20240623.zip" -OutFile ${{runner.workspace}}/rtl-sdr.zip | ||
| - name: Patch Pothos with newer librtlsdr version | ||
| working-directory: ${{runner.workspace}} | ||
| run: 7z x rtl-sdr.zip ; rm "C:/Program Files/PothosSDR/bin/rtlsdr.dll" ; cp "rtl-sdr-64bit-20240623/librtlsdr.dll" "C:/Program Files/PothosSDR/bin/rtlsdr.dll" | ||
| - name: Download SDRPlay API | ||
| run: Invoke-WebRequest -Uri "https://www.sdrpp.org/SDRplay.zip" -OutFile ${{runner.workspace}}/SDRplay.zip | ||
| - name: Install SDRPlay API | ||
| run: 7z x ${{runner.workspace}}/SDRplay.zip -o"C:/Program Files/" | ||
| - name: Download codec2 | ||
| run: git clone https://github.com/drowe67/codec2 | ||
| - name: Prepare MinGW | ||
| run: C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 -c "pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja" | ||
| - name: Prepare build for codec2 | ||
| run: cd codec2 ; mkdir build ; cd build ; C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 -c "cmake .. -DCMAKE_GNUtoMS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-static-libgcc" | ||
| - name: Build codec2 | ||
| run: cd codec2/build ; C:/msys64/msys2_shell.cmd -defterm -here -no-start -mingw64 -c "ninja" | ||
| - name: Install codec2 | ||
| run: mkdir "C:/Program Files/codec2" ; mkdir "C:/Program Files/codec2/include" ; mkdir "C:/Program Files/codec2/include/codec2" ; mkdir "C:/Program Files/codec2/lib" ; cd "codec2" ; xcopy "src" "C:/Program Files/codec2/include" ; cd "build" ; xcopy "src" "C:/Program Files/codec2/lib" ; xcopy "codec2" "C:/Program Files/codec2/include/codec2" | ||
| - name: Install vcpkg dependencies | ||
| run: vcpkg install fftw3:x64-windows glfw3:x64-windows portaudio:x64-windows zstd:x64-windows libusb:x64-windows spdlog:x64-windows pthreads | ||
| - name: Install rtaudio | ||
| run: git clone https://github.com/thestk/rtaudio ; cd rtaudio ; git checkout 2f2fca4502d506abc50f6d4473b2836d24cfb1e3 ; mkdir build ; cd build ; cmake .. ; cmake --build . --config Release ; cmake --install . | ||
| - name: Install libperseus-sdr | ||
| run: git clone https://github.com/AlexandreRouma/libperseus-sdr ; cd libperseus-sdr ; mkdir build ; cd build ; cmake -DCMAKE_BUILD_TYPE=Release "-DLIBUSB_LIBRARIES=C:/Program Files/PothosSDR/lib/libusb-1.0.lib" "-DLIBUSB_INCLUDE_DIRS=C:/Program Files/PothosSDR/include/libusb-1.0" .. "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ; cmake --build . --config Release ; mkdir "C:/Program Files/PothosSDR/include/perseus-sdr" ; cp Release/perseus-sdr.dll "C:/Program Files/PothosSDR/bin" ; cp Release/perseus-sdr.lib "C:/Program Files/PothosSDR/bin" ; cd .. ; xcopy "src" "C:/Program Files/PothosSDR/include/perseus-sdr" | ||
| - name: Install librfnm | ||
| run: git clone https://github.com/AlexandreRouma/librfnm ; cd librfnm ; mkdir build ; cd build ; cmake .. -DCMAKE_BUILD_TYPE=Release "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ; cmake --build . --config Release ; cmake --install . | ||
| - name: Install libfobos | ||
| run: git clone https://github.com/AlexandreRouma/libfobos ; cd libfobos ; mkdir build ; cd build ; cmake .. -DCMAKE_BUILD_TYPE=Release "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ; cmake --build . --config Release ; cmake --install . | ||
| - name: Install libhydrasdr | ||
| run: | | ||
| git clone https://github.com/hydrasdr/hydrasdr-host | ||
| cd hydrasdr-host | ||
| mkdir build | ||
| cd build | ||
| cmake .. -DCMAKE_BUILD_TYPE=Release ` | ||
| "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" ` | ||
| -DVCPKG_TARGET_TRIPLET=x64-windows ` | ||
| "-DLIBUSB_LIBRARIES=C:\Program Files\PothosSDR\lib\libusb-1.0.lib" ` | ||
| "-DLIBUSB_INCLUDE_DIR=C:\Program Files\PothosSDR\include\libusb-1.0" ` | ||
| "-DTHREADS_PTHREADS_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" ` | ||
| "-DTHREADS_PTHREADS_WIN32_LIBRARY=C:/vcpkg/installed/x64-windows/lib/pthreadVC3.lib" | ||
| cmake --build . --config Release | ||
| cmake --install . | ||
| - name: Install HydraSDR RFOne Headers and Libraries | ||
| run: | | ||
| # Create directories | ||
| New-Item -ItemType Directory -Path "C:/Program Files/PothosSDR/include" -Force | ||
| New-Item -ItemType Directory -Path "C:/Program Files/PothosSDR/lib" -Force | ||
| New-Item -ItemType Directory -Path "C:/Program Files/PothosSDR/bin" -Force | ||
| # Find and copy hydrasdr headers | ||
| cd hydrasdr-host | ||
| $headers = Get-ChildItem -Recurse -Filter "hydrasdr*.h" | ||
| foreach ($header in $headers) { | ||
| Copy-Item $header.FullName "C:/Program Files/PothosSDR/include/" | ||
| Write-Host "Copied header: $($header.Name)" | ||
| } | ||
| # Copy built libraries from build directory | ||
| cd build | ||
| $libraries = Get-ChildItem -Recurse -Filter "*hydrasdr*" | Where-Object { $_.Extension -in @('.lib', '.dll') } | ||
| foreach ($lib in $libraries) { | ||
| if ($lib.Extension -eq '.dll') { | ||
| Copy-Item $lib.FullName "C:/Program Files/PothosSDR/bin/" | ||
| } else { | ||
| Copy-Item $lib.FullName "C:/Program Files/PothosSDR/lib/" | ||
| } | ||
| Write-Host "Copied library: $($lib.Name)" | ||
| } | ||
| # Copy pthreadVC3.dll from vcpkg to PothosSDR bin directory | ||
| Copy-Item "C:/vcpkg/installed/x64-windows/bin/pthreadVC3.dll" "C:/Program Files/PothosSDR/bin/" | ||
| - name: Install libhydrasdr | ||
| run: git clone https://github.com/hydrasdr/rfone_host; cd rfone_host/ ; mkdir build ; cd build ; cmake .. -DCMAKE_BUILD_TYPE=Release "-DLIBUSB_LIBRARIES=C:\Program Files\PothosSDR\lib\libusb-1.0.lib" "-DLIBUSB_INCLUDE_DIR=C:\Program Files\PothosSDR\include\libusb-1.0" "-DTHREADS_PTHREADS_WIN32_LIBRARY=C:\Program Files\PothosSDR\lib\pthreadVC2.lib" "-DTHREADS_PTHREADS_INCLUDE_DIR=C:\Program Files\PothosSDR\include" ; cmake --build . --config Release ; cmake --install . | ||
| - name: Prepare CMake | ||
| working-directory: ${{runner.workspace}}/build | ||
| run: cmake -DCOPY_MSVC_REDISTRIBUTABLES=ON "$Env:GITHUB_WORKSPACE" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_PERSEUS_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_RFNM_SOURCE=ON -DOPT_BUILD_FOBOSSDR_SOURCE=ON -DOPT_BUILD_HYDRASDR_SOURCE=ON | ||
| - name: Build | ||
| working-directory: ${{runner.workspace}}/build | ||
| run: cmake --build . --config Release --verbose | ||
| - name: Create Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: '&($Env:GITHUB_WORKSPACE + "/make_windows_package.ps1") ./build ($Env:GITHUB_WORKSPACE + "/root")' | ||
| - name: Save Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_windows_x64 | ||
| path: ${{runner.workspace}}/sdrpp_windows_x64.zip | ||
| build_macos_intel: | ||
| runs-on: macos-15-intel | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Build Environment | ||
| run: cmake -E make_directory ${{runner.workspace}}/build | ||
| - name: Install dependencies | ||
| run: brew install pkg-config libusb fftw glfw airspy airspyhf portaudio hackrf libbladerf codec2 zstd autoconf automake libtool spdlog && pip3 install mako --break-system-packages | ||
| - name: Install volk | ||
| run: git clone --recursive https://github.com/gnuradio/volk && cd volk && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install SDRplay API | ||
| run: wget https://www.sdrplay.com/software/SDRplayAPI-macos-installer-universal-3.15.0.pkg && sudo installer -pkg SDRplayAPI-macos-installer-universal-3.15.0.pkg -target / | ||
| - name: Install libiio | ||
| run: wget https://github.com/analogdevicesinc/libiio/archive/refs/tags/v0.25.zip && 7z x v0.25.zip && cd libiio-0.25 && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install libad9361 | ||
| run: git clone https://github.com/analogdevicesinc/libad9361-iio && cd libad9361-iio && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install LimeSuite | ||
| run: git clone https://github.com/myriadrf/LimeSuite && cd LimeSuite && mkdir builddir && cd builddir && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install libperseus | ||
| run: git clone https://github.com/Microtelecom/libperseus-sdr && cd libperseus-sdr && autoreconf -i && ./configure --prefix=/usr/local && make && sudo make install && cd .. | ||
| - name: Install librfnm | ||
| run: git clone https://github.com/AlexandreRouma/librfnm && cd librfnm && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make && sudo make install && cd .. | ||
| - name: Install libfobos | ||
| run: git clone https://github.com/AlexandreRouma/libfobos && cd libfobos && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make && sudo make install && cd .. | ||
| - name: Install more recent librtlsdr | ||
| run: git clone https://github.com/osmocom/rtl-sdr && cd rtl-sdr && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 LIBRARY_PATH=$(pkg-config --libs-only-L libusb-1.0 | sed 's/\-L//') && sudo make install && cd ../../ | ||
| - name: Install libhydrasdr | ||
| run: git clone https://github.com/hydrasdr/hydrasdr-host && cd hydrasdr-host && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Prepare CMake | ||
| working-directory: ${{runner.workspace}}/build | ||
| run: cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 $GITHUB_WORKSPACE -DOPT_BUILD_PLUTOSDR_SOURCE=ON -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_PERSEUS_SOURCE=ON -DOPT_BUILD_AUDIO_SOURCE=OFF -DOPT_BUILD_RFNM_SOURCE=ON -DOPT_BUILD_FOBOSSDR_SOURCE=ON -DOPT_BUILD_HYDRASDR_SOURCE=ON -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release | ||
| - name: Build | ||
| working-directory: ${{runner.workspace}}/build | ||
| run: make VERBOSE=1 -j3 | ||
| - name: Create Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: cd $GITHUB_WORKSPACE && sh make_macos_bundle.sh ${{runner.workspace}}/build ./SDR++.app && zip -r ${{runner.workspace}}/sdrpp_macos_intel.zip SDR++.app | ||
| - name: Save Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_macos_intel | ||
| path: ${{runner.workspace}}/sdrpp_macos_intel.zip | ||
| build_macos_arm: | ||
| runs-on: macos-15 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Build Environment | ||
| run: cmake -E make_directory ${{runner.workspace}}/build | ||
| - name: Install dependencies | ||
| run: brew install pkg-config libusb fftw glfw airspy airspyhf portaudio hackrf libbladerf codec2 zstd autoconf automake libtool spdlog && pip3 install mako --break-system-packages | ||
| - name: Install volk | ||
| run: git clone --recursive https://github.com/gnuradio/volk && cd volk && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install SDRplay API | ||
| run: wget https://www.sdrplay.com/software/SDRplayAPI-macos-installer-universal-3.15.0.pkg && sudo installer -pkg SDRplayAPI-macos-installer-universal-3.15.0.pkg -target / | ||
| - name: Install libiio | ||
| run: wget https://github.com/analogdevicesinc/libiio/archive/refs/tags/v0.25.zip && 7z x v0.25.zip && cd libiio-0.25 && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install libad9361 | ||
| run: git clone https://github.com/analogdevicesinc/libad9361-iio && cd libad9361-iio && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Install LimeSuite | ||
| run: git clone https://github.com/myriadrf/LimeSuite && cd LimeSuite && mkdir builddir && cd builddir && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| # - name: Install libperseus | ||
| # run: git clone https://github.com/Microtelecom/libperseus-sdr && cd libperseus-sdr && autoreconf -i && ./configure --prefix=/usr/local && make && make install && cd .. | ||
| - name: Install librfnm | ||
| run: git clone https://github.com/AlexandreRouma/librfnm && cd librfnm && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make && sudo make install && cd .. | ||
| - name: Install libfobos | ||
| run: git clone https://github.com/AlexandreRouma/libfobos && cd libfobos && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && make && sudo make install && cd .. | ||
| - name: Install more recent librtlsdr | ||
| run: git clone https://github.com/osmocom/rtl-sdr && cd rtl-sdr && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 LIBRARY_PATH=$(pkg-config --libs-only-L libusb-1.0 | sed 's/\-L//') && sudo make install && cd ../../ | ||
| - name: Install libhydrasdr | ||
| run: git clone https://github.com/hydrasdr/hydrasdr-host && cd hydrasdr-host && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 && sudo make install && cd ../../ | ||
| - name: Prepare CMake | ||
| working-directory: ${{runner.workspace}}/build | ||
| run: cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 $GITHUB_WORKSPACE -DOPT_BUILD_PLUTOSDR_SOURCE=ON -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=OFF -DOPT_BUILD_PERSEUS_SOURCE=OFF -DOPT_BUILD_AUDIO_SOURCE=OFF -DOPT_BUILD_RFNM_SOURCE=ON -DOPT_BUILD_FOBOSSDR_SOURCE=ON -DOPT_BUILD_HYDRASDR_SOURCE=ON -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release | ||
| - name: Build | ||
| working-directory: ${{runner.workspace}}/build | ||
| run: make VERBOSE=1 -j3 | ||
| - name: Create Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: cd $GITHUB_WORKSPACE && sh make_macos_bundle.sh ${{runner.workspace}}/build ./SDR++.app && zip -r ${{runner.workspace}}/sdrpp_macos_arm.zip SDR++.app | ||
| - name: Save Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_macos_arm | ||
| path: ${{runner.workspace}}/sdrpp_macos_arm.zip | ||
| build_debian_bullseye_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_bullseye && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_bullseye_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_bullseye_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_bullseye && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_bullseye_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_bookworm_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_bookworm && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_bookworm_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_bookworm_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_bookworm && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_bookworm_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_trixie_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_trixie && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_trixie_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_trixie_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_trixie && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_trixie_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_sid_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_sid && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_sid_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_debian_sid_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/debian_sid && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_debian_sid_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_ubuntu_focal_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_focal && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_ubuntu_focal_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_ubuntu_focal_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_focal && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_ubuntu_focal_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_ubuntu_jammy_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_jammy && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_ubuntu_jammy_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_ubuntu_jammy_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_jammy && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_ubuntu_jammy_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_ubuntu_noble_amd64: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_noble && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_ubuntu_noble_amd64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_ubuntu_noble_aarch64: | ||
| runs-on: ubuntu-24.04-arm | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Create Docker Image | ||
| run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_noble && docker build . --tag sdrpp_build | ||
| - name: Run Container | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus --env BUILD_NO="-$GITHUB_RUN_NUMBER" sdrpp_build /root/do_build.sh | ||
| - name: Recover Deb Archive | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/sdrpp_debian_amd64.deb ./ | ||
| - name: Save Deb Archive | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_ubuntu_noble_aarch64 | ||
| path: ${{runner.workspace}}/sdrpp_debian_amd64.deb | ||
| build_android: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Fetch container | ||
| working-directory: ${{runner.workspace}} | ||
| run: git clone https://github.com/bubnikv/android-sdr-kit-iak android-sdr-kit | ||
| - name: Build container | ||
| working-directory: ${{runner.workspace}}/android-sdr-kit | ||
| run: docker build --progress=plain -t android-sdr-kit . | ||
| - name: Build Debug APK | ||
| run: docker run --name build -v $GITHUB_WORKSPACE:/root/SDRPlusPlus android-sdr-kit /bin/bash -l -c "cd /root/SDRPlusPlus/android && gradle --info assembleDebug" | ||
| - name: Recover Debug APK | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build:/root/SDRPlusPlus/android/app/build/outputs/apk/debug/app-debug.apk ./ && mv app-debug.apk sdrpp.apk | ||
| - name: Save Debug APK | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_android | ||
| path: ${{runner.workspace}}/sdrpp.apk | ||
| - name: Decode Keystore | ||
| if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }} | ||
| run: echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > ${{runner.workspace}}/release.keystore | ||
| - name: Build Signed Release APK | ||
| if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }} | ||
| run: | | ||
| docker rm build | ||
| docker run --name build_release \ | ||
| -e ANDROID_KEYSTORE_FILE=/root/release.keystore \ | ||
| -e ANDROID_KEYSTORE_PASSWORD=${{ secrets.ANDROID_KEYSTORE_PASSWORD }} \ | ||
| -e ANDROID_KEY_ALIAS=${{ secrets.ANDROID_KEY_ALIAS }} \ | ||
| -e ANDROID_KEY_PASSWORD=${{ secrets.ANDROID_KEY_PASSWORD }} \ | ||
| -v $GITHUB_WORKSPACE:/root/SDRPlusPlus \ | ||
| -v ${{runner.workspace}}/release.keystore:/root/release.keystore \ | ||
| android-sdr-kit /bin/bash -l -c "cd /root/SDRPlusPlus/android && gradle --info assembleRelease" | ||
| - name: Recover Release APK | ||
| if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }} | ||
| working-directory: ${{runner.workspace}} | ||
| run: docker cp build_release:/root/SDRPlusPlus/android/app/build/outputs/apk/release/app-release.apk ./ && mv app-release.apk sdrpp_release.apk | ||
| - name: Save Release APK | ||
| if: ${{ secrets.ANDROID_KEYSTORE_BASE64 != '' }} | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_android_release | ||
| path: ${{runner.workspace}}/sdrpp_release.apk | ||
| create_full_archive: | ||
| needs: [ | ||
| 'build_windows', | ||
| 'build_macos_intel', | ||
| 'build_macos_arm', | ||
| 'build_debian_bullseye_amd64', | ||
| 'build_debian_bullseye_aarch64', | ||
| 'build_debian_bookworm_amd64', | ||
| 'build_debian_bookworm_aarch64', | ||
| 'build_debian_trixie_amd64', | ||
| 'build_debian_trixie_aarch64', | ||
| 'build_debian_sid_amd64', | ||
| 'build_debian_sid_aarch64', | ||
| 'build_ubuntu_focal_amd64', | ||
| 'build_ubuntu_focal_aarch64', | ||
| 'build_ubuntu_jammy_amd64', | ||
| 'build_ubuntu_jammy_aarch64', | ||
| 'build_ubuntu_noble_amd64', | ||
| 'build_ubuntu_noble_aarch64', | ||
| 'build_android' | ||
| ] | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Download All Builds | ||
| uses: actions/download-artifact@v4 | ||
| - name: Create Archive | ||
| run: > | ||
| mkdir sdrpp_all && | ||
| mv sdrpp_windows_x64/sdrpp_windows_x64.zip sdrpp_all/ && | ||
| mv sdrpp_macos_intel/sdrpp_macos_intel.zip sdrpp_all/ && | ||
| mv sdrpp_macos_arm/sdrpp_macos_arm.zip sdrpp_all/ && | ||
| mv sdrpp_debian_bullseye_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_bullseye_amd64.deb && | ||
| mv sdrpp_debian_bullseye_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_bullseye_aarch64.deb && | ||
| mv sdrpp_debian_bookworm_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_bookworm_amd64.deb && | ||
| mv sdrpp_debian_bookworm_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_bookworm_aarch64.deb && | ||
| mv sdrpp_debian_trixie_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_trixie_amd64.deb && | ||
| mv sdrpp_debian_trixie_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_trixie_aarch64.deb && | ||
| mv sdrpp_debian_sid_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_sid_amd64.deb && | ||
| mv sdrpp_debian_sid_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_sid_aarch64.deb && | ||
| mv sdrpp_ubuntu_focal_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_focal_amd64.deb && | ||
| mv sdrpp_ubuntu_focal_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_focal_aarch64.deb && | ||
| mv sdrpp_ubuntu_jammy_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_jammy_amd64.deb && | ||
| mv sdrpp_ubuntu_jammy_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_jammy_aarch64.deb && | ||
| mv sdrpp_ubuntu_noble_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_noble_amd64.deb && | ||
| mv sdrpp_ubuntu_noble_aarch64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_noble_aarch64.deb && | ||
| mv sdrpp_android/sdrpp.apk sdrpp_all/sdrpp.apk && | ||
| ([ -d sdrpp_android_release ] && mv sdrpp_android_release/sdrpp_release.apk sdrpp_all/sdrpp_release.apk || true) | ||
| - uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: sdrpp_all | ||
| path: sdrpp_all/ | ||
| update_nightly_release: | ||
| needs: [create_full_archive] | ||
| runs-on: ubuntu-latest | ||
| if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | ||
| steps: | ||
| - name: Download All Builds | ||
| uses: actions/download-artifact@v4 | ||
| - name: Create or Update Nightly Release | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| run: | | ||
| # Check if nightly release exists, create if not | ||
| gh release view nightly -R ${{github.repository}} 2>/dev/null || gh release create nightly -R ${{github.repository}} --title "Nightly Build" --notes "Automated nightly build from CI - Built from commit ${{ github.sha }}" --prerelease | ||
| # Upload artifacts (--clobber overwrites existing files) | ||
| gh release upload nightly sdrpp_all/* -R ${{github.repository}} --clobber | ||
| check_spelling: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Install codespell | ||
| run: sudo apt update -y && sudo apt install -y codespell | ||
| - name: Running codespell | ||
| run: cd $GITHUB_WORKSPACE && codespell -q 2 || true | ||
| check_formatting: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Run check_clang_format | ||
| run: cd $GITHUB_WORKSPACE && chmod +x ./check_clang_format.sh && ./check_clang_format.sh || true | ||