Ensure spectral tuner is in sync with circular buffer state #301
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@v3 | |
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@v3 | |
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@v3 | |
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: | | |
# 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 | |
# soapyairspyhf removed because of random compilation errors | |
brew install --force --overwrite [email protected] | |
brew install libsndfile volk fftw soapysdr libxml2 portaudio | |
python3 -Im pip install setuptools | |
# sudo rm /usr/local/bin/2to3* /usr/local/bin/idle3* /usr/local/bin/pydoc3* | |
brew install soapyrtlsdr soapyhackrf soapybladerf soapyairspy soapyredpitaya soapyiris limesuite soapyplutosdr | |
brew install --head soapyuhd | |
# TODO: needed? | |
#sudo mkdir -p /usr/local/lib/SoapySDR/modules0.8 | |
#sudo chmod -R a+rw /usr/local/lib/SoapySDR/modules0.8 | |
# 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 / | |
# SoapySDRPlay3 from source | |
git clone https://github.com/pothosware/SoapySDRPlay3 | |
cd SoapySDRPlay3 | |
cmake -DCMAKE_BUILD_TYPE=Release -B build . | |
cmake --build build | |
cd 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@v3 | |
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@v3 | |
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@v3 | |
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}} |