name: Build FreeDV (Linux)

on:
  push:
    branches-ignore:
    - 'dr-render-manual'
    
env:
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
  BUILD_TYPE: Debug

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

    steps:
    - uses: actions/checkout@v2

    - name: Install packages
      shell: bash
      run: |
           sudo apt-get update
           sudo apt-get install codespell libpulse-dev libspeexdsp-dev libsamplerate0-dev sox git libwxgtk3.0-gtk3-dev portaudio19-dev libhamlib-dev libasound2-dev libao-dev libgsm1-dev libsndfile-dev
            
    - name: Spellcheck codebase
      shell: bash
      run: codespell --ignore-words-list=inout,nin,ontop,parm,tthe,ue `find src -name '*.c*' -o -name '*.h' -o -name '*.mm'`

    - name: Build freedv-gui using PortAudio
      shell: bash
      working-directory: ${{github.workspace}}
      run: UT_ENABLE=1 ./build_linux.sh portaudio

    - name: Build freedv-gui using PulseAudio
      shell: bash
      working-directory: ${{github.workspace}}
      run: UT_ENABLE=1 ./build_linux.sh pulseaudio

    - name: Execute unit tests
      shell: bash
      working-directory: ${{github.workspace}}/build_linux
      run: make test
      
