Merge branch 'sultanqasim-defer_source_stop' into develop #270
This file contains 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: CI | |
on: [push, pull_request, workflow_dispatch] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: Release | |
jobs: | |
dep_target: | |
runs-on: ubuntu-latest | |
outputs: | |
target_ref: ${{ steps.dep_target.outputs.target_ref }} | |
steps: | |
- name: Determine dependencies target branch | |
id: dep_target | |
run: | | |
target_ref="develop" | |
echo "Checking PR base reference..." | |
if [ ! -z "${{ github.base_ref }}" ] | |
then | |
echo "Base reference: ${{ github.base_ref }}" | |
if [ ! -z "$(echo ${{ github.base_ref }} | grep -E "^refs/.*/master$")" ] | |
then | |
echo "Reference to master found!" | |
target_ref="master" | |
fi | |
fi | |
echo "Checking reference..." | |
if [ ! -z "${{ github.ref }}" ] | |
then | |
echo "Reference: ${{ github.ref }}" | |
if [ ! -z "$(echo ${{ github.ref }} | grep -E "^refs/.*/master$")" ] | |
then | |
echo "Reference to master found!" | |
target_ref="master" | |
fi | |
fi | |
echo "Targetting '${target_ref}' branch..." | |
echo "target_ref=${target_ref}" >> $GITHUB_OUTPUT | |
build-linux: | |
needs: dep_target | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Install dependencies | |
run: sudo apt-get install libsndfile1-dev libvolk2-dev libfftw3-dev soapysdr-module-all libsoapysdr-dev libxml2-dev portaudio19-dev | |
- name: Checkout (sigutils) | |
uses: actions/checkout@v3 | |
with: | |
repository: BatchDrake/sigutils | |
ref: ${{needs.dep_target.outputs.target_ref}} | |
path: sigutils | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Configure CMake (sigutils) | |
run: | | |
cd sigutils | |
cmake -DCMAKE_INSTALL_PREFIX=/usr -B ${{github.workspace}}/sigutils/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} . | |
cd .. | |
- name: Build (sigutils) | |
run: cmake --build ${{github.workspace}}/sigutils/build --config ${{env.BUILD_TYPE}} | |
- name: Install system-wide (sigutils) | |
run: sudo cmake --build ${{github.workspace}}/sigutils/build --config ${{env.BUILD_TYPE}} --target install | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: suscan | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Get short hash | |
id: vars | |
run: cd ${{github.workspace}}/suscan/ && echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
- name: Configure CMake (suscan) | |
run: cmake -DSUSCAN_PKGDIR="/usr" -DPKGVERSION="${{steps.vars.outputs.sha_short}}" -DCMAKE_INSTALL_PREFIX=/usr -B ${{github.workspace}}/suscan/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} suscan | |
- name: Build (suscan) | |
run: cmake --build ${{github.workspace}}/suscan/build --config ${{env.BUILD_TYPE}} | |
- name: Make Debian packages | |
run: cd ${{github.workspace}}/suscan/ && ./makedeb.sh 0.3.0 ${{steps.vars.outputs.sha_short}} | |
- name: Upload lib deb artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: libsuscan_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb | |
path: ${{github.workspace}}/suscan/libsuscan_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb | |
- name: Upload lib dev deb artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: libsuscan-dev_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb | |
path: ${{github.workspace}}/suscan/libsuscan-dev_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb | |
- name: Upload tools deb artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: suscan-tools_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb | |
path: ${{github.workspace}}/suscan/suscan-tools_0.3.0-${{steps.vars.outputs.sha_short}}_amd64.deb | |
build-macos: | |
needs: dep_target | |
runs-on: macos-latest | |
steps: | |
- name: Install dependencies | |
run: | | |
# SDRPlay API | |
wget https://www.sdrplay.com/software/SDRplay_RSP_API-MacOSX-3.07.3.pkg | |
sudo installer -pkg SDRplay_RSP_API-MacOSX-3.07.3.pkg -target / | |
# Add custom homebrew repos | |
brew tap pothosware/homebrew-pothos | |
brew update | |
# Install deps | |
# soapyaudio removed from due to deprecated hamlib API | |
# soapyosmo removed because of random compilation errors | |
# soapyuhd removed for the same reason | |
brew install libsndfile volk fftw pothossoapy soapyrtlsdr soapyhackrf soapybladerf soapyairspy soapyairspyhf soapyredpitaya soapyiris limesuite soapyplutosdr libxml2 portaudio | |
# TODO: needed? | |
#sudo mkdir -p /usr/local/lib/SoapySDR/modules0.8 | |
#sudo chmod -R a+rw /usr/local/lib/SoapySDR/modules0.8 | |
# SoapySDRPlay3 from source | |
git clone https://github.com/pothosware/SoapySDRPlay3 | |
cd SoapySDRPlay3 | |
cmake -DCMAKE_BUILD_TYPE=Release -B build . | |
cmake --build build | |
sudo make install | |
cd .. | |
- name: Checkout (sigutils) | |
uses: actions/checkout@v3 | |
with: | |
repository: BatchDrake/sigutils | |
ref: ${{needs.dep_target.outputs.target_ref}} | |
path: sigutils | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Configure CMake (sigutils) | |
run: | | |
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH | |
cmake -B ${{github.workspace}}/sigutils/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} sigutils | |
- name: Build (sigutils) | |
run: cmake --build ${{github.workspace}}/sigutils/build --config ${{env.BUILD_TYPE}} | |
- name: Install system-wide (sigutils) | |
run: sudo cmake --build ${{github.workspace}}/sigutils/build --config ${{env.BUILD_TYPE}} --target install | |
- name: Checkout (suscan) | |
uses: actions/checkout@v3 | |
with: | |
path: suscan | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Configure CMake (suscan) | |
run: | | |
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH | |
cmake -B ${{github.workspace}}/suscan/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} suscan | |
- name: Build (suscan) | |
run: cmake --build ${{github.workspace}}/suscan/build --config ${{env.BUILD_TYPE}} | |
build-windows: | |
needs: dep_target | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: git mingw-w64-x86_64-cc mingw-w64-x86_64-make mingw-w64-x86_64-cmake mingw-w64-x86_64-libsndfile mingw-w64-x86_64-fftw mingw-w64-x86_64-volk mingw-w64-x86_64-libxml2 mingw-w64-x86_64-libusb | |
- name: Checkout (sigutils) | |
uses: actions/checkout@v3 | |
with: | |
repository: BatchDrake/sigutils | |
ref: ${{needs.dep_target.outputs.target_ref}} | |
path: sigutils | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Configure sigutils | |
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\sigutils\\build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\sigutils | |
- name: Build sigutils | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\sigutils\\build --config ${{env.BUILD_TYPE}} | |
- name: Install sigutils | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\sigutils\\build --config ${{env.BUILD_TYPE}} --target install | |
# SoapySDR | |
- name: Checkout (soapysdr) | |
uses: actions/checkout@v2 | |
with: | |
repository: pothosware/SoapySDR | |
ref: refs/heads/master | |
path: SoapySDR | |
- name: Configure | |
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\SoapySDR\\build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\SoapySDR\\ | |
- name: Build | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapySDR\\build --config ${{env.BUILD_TYPE}} | |
- name: Install sigutils | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapySDR\\build --config ${{env.BUILD_TYPE}} --target install | |
# BatchDrake's fixed rtl-sdr | |
- name: Checkout (rtl-sdr-blog) | |
uses: actions/checkout@v2 | |
with: | |
repository: BatchDrake/rtl-sdr-blog | |
ref: refs/heads/feature/xfer-completion | |
path: rtl-sdr-blog | |
- name: Configure | |
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\rtl-sdr-blog\\build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\rtl-sdr-blog\\ | |
- name: Build | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\rtl-sdr-blog\\build --config ${{env.BUILD_TYPE}} | |
- name: Install | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\rtl-sdr-blog\\build --config ${{env.BUILD_TYPE}} --target install | |
# SoapyRTLSDR | |
- name: Checkout (soapyrtlsdr) | |
uses: actions/checkout@v2 | |
with: | |
repository: pothosware/SoapyRTLSDR | |
ref: refs/heads/master | |
path: SoapyRTLSDR | |
- name: Configure | |
run: /mingw64/bin/cmake -G"MinGW Makefiles" -B D:\\a\\suscan\\suscan\\SoapyRTLSDR/build -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\SoapyRTLSDR\\ | |
- name: Build | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapyRTLSDR\\build --config ${{env.BUILD_TYPE}} | |
- name: Install | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\SoapyRTLSDR\\build --config ${{env.BUILD_TYPE}} --target install | |
# suscan | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Configure CMake | |
run: | | |
export PKG_CONFIG_PATH=C:\\msys64\\mingw64\\lib\\pkgconfig\\ | |
/mingw64/bin/cmake -B D:\\a\\suscan\\suscan\\build -G"MinGW Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=C:\\msys64\\mingw64 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} D:\\a\\suscan\\suscan\\ | |
- name: Build | |
run: /mingw64/bin/cmake --build D:\\a\\suscan\\suscan\\build --config ${{env.BUILD_TYPE}} |