name: C/C++ CI
on: push
jobs:
  x86_ubuntu18_build:
    name: Build and test on x86 Ubuntu 18.04
    strategy:
        matrix:
          compiler: [gcc, clang]
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v1
      - name: Build srsLTE on x86 Ubuntu 18.04
        run: |
          sudo apt update
          sudo apt install -y build-essential cmake libfftw3-dev libmbedtls-dev libpcsclite-dev libboost-program-options-dev libconfig++-dev libsctp-dev colordiff ninja-build valgrind
          mkdir build && cd build && cmake -DRF_FOUND=True -GNinja .. && ninja && ctest -T memcheck
  x86_ubuntu16_build:
    name: Build and test on x86 Ubuntu 16.04
    strategy:
        matrix:
          compiler: [gcc, clang]
    runs-on: ubuntu-16.04
    steps:
      - uses: actions/checkout@v1
      - name: Build srsLTE on x86 Ubuntu 16.04
        run: |
          sudo apt update
          sudo apt install -y build-essential cmake libfftw3-dev libmbedtls-dev libpcsclite-dev libboost-program-options-dev libconfig++-dev libsctp-dev colordiff ninja-build valgrind
          mkdir build && cd build && cmake -DRF_FOUND=True -GNinja .. && ninja && ctest -T memcheck
          
  aarch64_ubuntu18_build:
    runs-on: ubuntu-18.04
    name: Build on aarch64
    strategy:
      matrix:
        compiler: [gcc, clang]
    steps:
    - uses: actions/checkout@v1
    - name: Build srsLTE on aarch64
      uses: uraimo/run-on-arch-action@master
      with:
        architecture: aarch64
        distribution: ubuntu18.04
        run: |
          export CTEST_PARALLEL_LEVEL=$(nproc --all)
          apt update
          apt install -y build-essential cmake libfftw3-dev libmbedtls-dev libpcsclite-dev libboost-program-options-dev libconfig++-dev libsctp-dev ninja-build
          ls -l && pwd && mkdir build && cd build && cmake -DRF_FOUND=True -GNinja .. && ninja