name: build

on: [push, pull_request]


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/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix
    runs-on: ${{ matrix.os }}


    strategy:
      matrix:
        os: [ubuntu-18.04, ubuntu-20.04]
        build_type: ['Release']
        staticcompile: ['ON', 'OFF']

    steps:
    - uses: actions/checkout@v2
    
    # install dependencies
    - name: update git submodules
      run: git submodule init && git submodule update
    
    - name: boost and python3
      run: sudo apt-get update && sudo apt-get install -yq libboost-dev libboost-program-options-dev help2man python3-pip python3-setuptools python3-numpy

    - name: Install lit
      run: sudo -H pip3 install --upgrade pip && pip3 install --user lit

    - name: Configure CMake
      # Use a bash shell so we can use the same syntax for environment variable
      # access regardless of the host operating system
      #working-directory: ${{runner.workspace}}/build
      # Note the current convention is to use the -S and -B options here to specify source 
      # and build directories, but this is only available with CMake 3.13 and higher.  
      # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
      run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DENABLE_TESTING=ON  -DSTATICCOMPILE=${{ matrix.staticcompile }}

    - name: Build
      #working-directory: ${{runner.workspace}}/build
      # Execute the build.  You can specify a specific target with "--target <NAME>"
      run: cmake --build . --config ${{ matrix.build_type }}

    - name: Test
      #working-directory: ${{runner.workspace}}/build
      # Execute tests defined by the CMake configuration.  
      # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
      run: ctest -C ${{ matrix.build_type }}

    #- name: "Install CMS (unix)"
    #  if: ${{ !contains(matrix.os, 'windows') }}
    #  run: sudo cmake --install build --config ${{ matrix.build_type }}

    #- name: "Install Spix (win)"
    #  if: ${{ contains(matrix.os, 'windows') }}
    #  run: cmake --install build --config ${{ matrix.build_type }}
