diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..bd82c08 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,188 @@ +name: CI +on: [push, pull_request] +jobs: + linux-ci: + name: Linux + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - cc: gcc-9 + cxx: g++-9 + build_type: Release + - cc: gcc-9 + cxx: g++-9 + build_type: Debug + + - cc: gcc-10 + cxx: g++-10 + build_type: Release + - cc: gcc-10 + cxx: g++-10 + build_type: Debug + + - cc: clang-10 + cxx: clang++-10 + build_type: Release + - cc: clang-10 + cxx: clang++-10 + build_type: Debug + + - cc: clang-11 + cxx: clang++-11 + build_type: Release + - cc: clang-11 + cxx: clang++-11 + build_type: Debug + + - cc: clang-12 + cxx: clang++-12 + build_type: Release + - cc: clang-12 + cxx: clang++-12 + build_type: Debug + env: + CC: ${{matrix.cc}} + CXX: ${{matrix.cxx}} + INSTALL_PREFIX: /usr/local + steps: + - uses: actions/checkout@v2 + - name: Install dependencies + run: | + sudo apt install -y libavahi-client-dev libavahi-common-dev + cd ${{runner.workspace}} + + # Build against earliest supported SoapySDR + git clone https://github.com/pothosware/SoapySDR -b soapy-sdr-0.4.0 + mkdir SoapySDR/build + cd SoapySDR/build + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DENABLE_PYTHON=OFF -DENABLE_PYTHON3=OFF .. + make + sudo make install + sudo ldconfig + - name: Build SoapyRemote + run: | + mkdir ${{github.workspace}}/build + cd ${{github.workspace}}/build + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} ${{github.workspace}} + make + - name: Install + run: | + cd ${{github.workspace}}/build + sudo make install + - name: Test module registration + run: | + SoapySDRUtil --check=remote + osx-ci: + name: OS X + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + include: + - cc: clang + cxx: clang++ + build_type: Release + - cc: clang + cxx: clang++ + build_type: Debug + env: + CC: ${{matrix.cc}} + CXX: ${{matrix.cxx}} + INSTALL_PREFIX: /usr/local + steps: + - uses: actions/checkout@v2 + - name: Install SoapySDR + run: | + cd ${{runner.workspace}} + + # Build against earliest supported SoapySDR + git clone https://github.com/pothosware/SoapySDR -b soapy-sdr-0.4.0 + mkdir SoapySDR/build + cd SoapySDR/build + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DENABLE_PYTHON=OFF -DENABLE_PYTHON3=OFF .. + make + sudo make install + - name: Build SoapyRemote + run: | + mkdir ${{github.workspace}}/build + cd ${{github.workspace}}/build + cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} ${{github.workspace}} + make + - name: Install + run: | + cd ${{github.workspace}}/build + sudo make install + - name: Test module registration + run: | + SoapySDRUtil --check=remote + windows-ci: + name: Windows + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + # Note: keeping cmake_config general enough for non-MSVC later + include: + - cmake_config: -G "Visual Studio 14 2015" -A "Win32" + arch: win32 + build_type: Release + - cmake_config: -G "Visual Studio 14 2015" -A "Win32" + arch: win32 + build_type: Debug + + - cmake_config: -G "Visual Studio 14 2015" -A "x64" + arch: x64 + build_type: Release + - cmake_config: -G "Visual Studio 14 2015" -A "x64" + arch: x64 + build_type: Debug + + # Note: skipping VS2017, possible bugginess in parallel installs + + - cmake_config: -G "Visual Studio 16 2019" -A "Win32" + arch: win32 + build_type: Release + - cmake_config: -G "Visual Studio 16 2019" -A "Win32" + arch: win32 + build_type: Debug + + - cmake_config: -G "Visual Studio 16 2019" -A "x64" + arch: x64 + build_type: Release + - cmake_config: -G "Visual Studio 16 2019" -A "x64" + arch: x64 + build_type: Release + env: + INSTALL_PREFIX: 'C:\Program Files\SoapySDR' + steps: + - uses: actions/checkout@v2 + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{matrix.arch}} + - name: Install SoapySDR + run: | + cd ${{runner.workspace}} + + # Build against earliest supported SoapySDR + git clone https://github.com/pothosware/SoapySDR -b soapy-sdr-0.4.0 + mkdir SoapySDR\build + cd SoapySDR\build + cmake -DCMAKE_INSTALL_PREFIX="$Env:INSTALL_PREFIX" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DENABLE_PYTHON=OFF -DENABLE_PYTHON3=OFF .. + cmake --build . --config ${{matrix.build_type}} + cmake --install . --config ${{matrix.build_type}} + - name: Build SoapyRemote + run: | + mkdir ${{github.workspace}}/build + cd ${{github.workspace}}/build + cmake -DCMAKE_PREFIX_PATH="$Env:INSTALL_PREFIX" -DCMAKE_INSTALL_PREFIX="$Env:INSTALL_PREFIX" -DCMAKE_BUILD_TYPE=${{matrix.build_type}} ${{github.workspace}} + cmake --build . --config ${{matrix.build_type}} + - name: Install + run: | + cd ${{github.workspace}}/build + cmake --install . --config ${{matrix.build_type}} + - name: Test module registration + run: | + $Env:PATH += ";$Env:INSTALL_PREFIX\bin" + SoapySDRUtil --check=remote diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ed899d1..0000000 --- a/.travis.yml +++ /dev/null @@ -1,55 +0,0 @@ -######################################################################## -## Travis CI config for SoapyRemote -## -## * installs SoapySDR from source -## * confirms build and install -## * checks that drivers load -######################################################################## - -sudo: required -dist: trusty - -language: cpp - -matrix: - include: - - os: linux - compiler: gcc - env: PYTHON_EXECUTABLE=/usr/bin/python PYTHON3_EXECUTABLE=/usr/bin/python3 - - os: osx - compiler: clang - env: PYTHON_EXECUTABLE=/usr/local/bin/python2 PYTHON3_EXECUTABLE=/usr/local/bin/python3 - -env: - global: - - INSTALL_PREFIX=/usr/local - - BUILD_TYPE=Release - -# whitelist -branches: - only: - - master - - maint - -install: - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install -qq libavahi-client-dev; fi; - - # install SoapySDR from source - - git clone https://github.com/pothosware/SoapySDR.git - - pushd SoapySDR - - git checkout ${SOAPY_SDR_BRANCH} - - mkdir build && cd build - - cmake ../ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DENABLE_PYTHON=OFF -DENABLE_PYTHON3=OFF - - make && sudo make install - - popd - -script: - - mkdir build && cd build - - cmake ../ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} - - make && sudo make install - # print info about the install - - export LD_LIBRARY_PATH=${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH} - - export PATH=${INSTALL_PREFIX}/bin:${PATH} - - SoapySDRUtil --info - - SoapySDRUtil --check=remote - - SoapySDRServer --help diff --git a/README.md b/README.md index f45107a..ac72fee 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Build Status -- Travis: [![Travis Build Status](https://travis-ci.org/pothosware/SoapyRemote.svg?branch=master)](https://travis-ci.org/pothosware/SoapyRemote) +![Build Status](https://github.com/pothosware/SoapyRemote/actions/workflows/ci.yml/badge.svg) ## Dependencies