name: Build Binaries on: [push, pull_request] env: # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build_windows: runs-on: windows-latest steps: - uses: actions/checkout@v2 - 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-2021.02.28-vc16-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/" - name: Download SDRPlay API run: Invoke-WebRequest -Uri "https://drive.google.com/uc?id=12UHPMwkfa67A11QZDmpCT4iwHnyJHWuu" -OutFile ${{runner.workspace}}/SDRPlay.zip - name: Install SDRPlay API run: 7z x ${{runner.workspace}}/SDRPlay.zip -o"C:/Program Files/" - name: Install vcpkg dependencies run: vcpkg install fftw3:x64-windows glew:x64-windows glfw3:x64-windows - name: Install rtaudio run: git clone https://github.com/thestk/rtaudio ; cd rtaudio ; mkdir build ; cd build ; cmake .. ; cmake --build . --config Release ; cmake --install . - name: Prepare CMake working-directory: ${{runner.workspace}}/build run: cmake "$Env:GITHUB_WORKSPACE" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DOPT_BUILD_SDRPLAY_SOURCE=ON - name: Build working-directory: ${{runner.workspace}}/build run: cmake --build . --config Release - 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@v2 with: name: sdrpp_windows_x64 path: ${{runner.workspace}}/sdrpp_windows_x64.zip build_macos: runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Create Build Environment run: cmake -E make_directory ${{runner.workspace}}/build - name: Install dependencies run: brew install fftw glew glfw volk airspy rt-audio hackrf rtl-sdr - name: Prepare CMake working-directory: ${{runner.workspace}}/build run: cmake $GITHUB_WORKSPACE -DOPT_BUILD_AIRSPYHF_SOURCE=OFF -DOPT_BUILD_PLUTOSDR_SOURCE=OFF -DOPT_BUILD_SOAPY_SOURCE=OFF - name: Build working-directory: ${{runner.workspace}}/build run: make -j3 - name: Create Archive working-directory: ${{runner.workspace}} run: sh $GITHUB_WORKSPACE/make_macos_package.sh ${{runner.workspace}}/build - name: Save Archive uses: actions/upload-artifact@v2 with: name: sdrpp_macos_amd64 path: ${{runner.workspace}}/sdrpp_macos_amd64.pkg build_debian_buster: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Create Docker Image run: cd $GITHUB_WORKSPACE/docker_builds/debian_buster && docker build . --tag sdrpp_build - name: Run Container run: docker run --name build 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@v2 with: name: sdrpp_debian_buster_amd64 path: ${{runner.workspace}}/sdrpp_debian_amd64.deb build_debian_bullseye: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - 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 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@v2 with: name: sdrpp_debian_bullseye_amd64 path: ${{runner.workspace}}/sdrpp_debian_amd64.deb build_debian_sid: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - 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 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@v2 with: name: sdrpp_debian_sid_amd64 path: ${{runner.workspace}}/sdrpp_debian_amd64.deb build_ubuntu_focal: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - 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 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@v2 with: name: sdrpp_ubuntu_focal_amd64 path: ${{runner.workspace}}/sdrpp_debian_amd64.deb build_ubuntu_groovy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Create Docker Image run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_groovy && docker build . --tag sdrpp_build - name: Run Container run: docker run --name build 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@v2 with: name: sdrpp_ubuntu_groovy_amd64 path: ${{runner.workspace}}/sdrpp_debian_amd64.deb build_ubuntu_hirsute: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Create Docker Image run: cd $GITHUB_WORKSPACE/docker_builds/ubuntu_hirsute && docker build . --tag sdrpp_build - name: Run Container run: docker run --name build 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@v2 with: name: sdrpp_ubuntu_hirsute_amd64 path: ${{runner.workspace}}/sdrpp_debian_amd64.deb create_full_archive: needs: ['build_windows', 'build_macos', 'build_debian_buster', 'build_debian_bullseye', 'build_debian_sid', 'build_ubuntu_focal', 'build_ubuntu_groovy', 'build_ubuntu_hirsute'] runs-on: ubuntu-latest steps: - name: Download All Builds uses: actions/download-artifact@v2 - name: Create Archive run: > mkdir sdrpp_all && mv sdrpp_windows_x64/sdrpp_windows_x64.zip sdrpp_all/ && mv sdrpp_macos_amd64/sdrpp_macos_amd64.pkg sdrpp_all/ && mv sdrpp_debian_buster_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_buster_amd64.deb && mv sdrpp_debian_bullseye_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_bullseye_amd64.deb && mv sdrpp_debian_sid_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_debian_sid_amd64.deb && mv sdrpp_ubuntu_focal_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_focal_amd64.deb && mv sdrpp_ubuntu_groovy_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_groovy_amd64.deb && mv sdrpp_ubuntu_hirsute_amd64/sdrpp_debian_amd64.deb sdrpp_all/sdrpp_ubuntu_hirsute_amd64.deb - uses: actions/upload-artifact@v2 with: name: sdrpp_all path: sdrpp_all/