| name: CMake Ubuntu Contrib |
| |
| on: [push, pull_request] |
| |
| env: |
| BUILD_TYPE: Release |
| |
| jobs: |
| build: |
| strategy: |
| fail-fast: false |
| matrix: |
| os: [ubuntu-20.04] |
| contrib: [jsonnet, pffft] |
| ignore-errors: [true] |
| include: |
| - compiler: clang |
| compiler-version: 11 |
| - compiler: gcc |
| compiler-version: 10 |
| runs-on: ${{ matrix.os }} |
| continue-on-error: ${{ matrix.ignore-errors }} |
| |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - name: Cache dependencies |
| uses: actions/cache@v3 |
| with: |
| key: ${{matrix.os}}-${{matrix.compiler}}${{matrix.compiler-version}} |
| path: | |
| ${{github.workspace}}/build/_deps |
| !${{github.workspace}}/build/_deps/${{matrix.contrib}}-*/** |
| |
| - name: Cache dependencies (contrib) |
| uses: actions/cache@v3 |
| with: |
| key: ${{matrix.os}}-${{matrix.compiler}}${{matrix.compiler-version}}-${{matrix.contrib}} |
| path: | |
| ${{github.workspace}}/build/_deps/${{matrix.contrib}}-*/** |
| |
| - name: Install ninja-build tool |
| uses: seanmiddleditch/gha-setup-ninja@v3 |
| |
| - name: Install/configure Clang compiler toolchain |
| if: matrix.compiler == 'clang' |
| run: | |
| sudo apt-get install -qy clang-${{matrix.compiler-version}} |
| echo "CXX=clang++-${{matrix.compiler-version}}" >> $GITHUB_ENV |
| echo "CC=clang-${{matrix.compiler-version}}" >> $GITHUB_ENV |
| |
| - name: Install/configure GCC compiler toolchain |
| if: matrix.compiler == 'gcc' |
| run: | |
| sudo apt-get install -qy g++-${{matrix.compiler-version}} |
| echo "CXX=g++-${{matrix.compiler-version}}" >> $GITHUB_ENV |
| echo "CC=gcc-${{matrix.compiler-version}}" >> $GITHUB_ENV |
| |
| - name: Create Build Environment |
| run: | |
| pip3 install absl-py clang |
| cmake -E make_directory $GITHUB_WORKSPACE/build |
| |
| - name: Configure CMake |
| run: | |
| cmake \ |
| -S $GITHUB_WORKSPACE/contrib/${{matrix.contrib}} \ |
| -B $GITHUB_WORKSPACE/build \ |
| -G Ninja \ |
| -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ |
| -DSAPI_BUILD_TESTING=ON \ |
| -DSAPI_BUILD_EXAMPLES=ON |
| |
| - name: Build |
| run: | |
| cmake \ |
| --build $GITHUB_WORKSPACE/build \ |
| --config $BUILD_TYPE |
| |
| - name: Test |
| run: | |
| ctest \ |
| --test-dir $GITHUB_WORKSPACE/build \ |
| -C $BUILD_TYPE \ |
| --output-on-failure |