diff --git a/.github/workflows/ctest.yml b/.github/workflows/ctest.yml new file mode 100644 index 00000000..77c916b8 --- /dev/null +++ b/.github/workflows/ctest.yml @@ -0,0 +1,55 @@ +name: CTest + +on: [push] + +jobs: + build: + # The CMake configure and build commands are platform-agnostic and should work equally + # well on Windows or Mac. You can convert this to a matrix build if you need + # cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + strategy: + # By default, GitHub will maximize the number of jobs run in parallel + # depending on the available runners on GitHub-hosted virtual machines. + # max-parallel: 8 + fail-fast: false + matrix: + include: + - python-version: "3.7" + - python-version: "3.8" + - python-version: "3.9" + - python-version: "3.10" + - python-version: "3.11" + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + + - name: Install packages + shell: bash + run: | + sudo apt-get update + sudo apt-get install octave octave-common octave-signal sox portaudio19-dev python3-pyaudio + pip3 install psutil crcengine ujson pyserial numpy structlog sounddevice pyaudio + pip3 install pytest pytest-rerunfailures + + - name: Build codec2 + shell: bash + run: | + git clone https://github.com/drowe67/codec2.git + cd codec2 && git checkout master # This should be pinned to a release + mkdir -p build_linux && cd build_linux && cmake .. && make + + - name: run ctests + shell: bash + working-directory: ${{github.workspace}} + run: | + mkdir build && cd build + cmake -DCODEC2_BUILD_DIR=$GITHUB_WORKSPACE/codec2/build_linux .. + ctest --output-on-failure