Skip to content

Update deprecated macOS runner #413

Update deprecated macOS runner

Update deprecated macOS runner #413

name: CPP17 libQLever
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
merge_group:
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-22.04
# 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
strategy:
fail-fast: false
matrix:
include:
- compiler-version: 11
use-keep-going: false
use-ignore-errors: false
additional-cmake-options: "-DREDUCED_FEATURE_SET_FOR_CPP17=ON"
- compiler-version: 8
expensive-tests: true
use-keep-going: true
use-ignore-errors: true
additional-cmake-options: "-DREDUCED_FEATURE_SET_FOR_CPP17=ON -DUSE_CPP_17_BACKPORTS=ON -DCMAKE_CXX_STANDARD=17 -DCOMPILER_VERSION_CHECK_DEACTIVATED=ON"
env:
warnings: ""
build-type: Release
expensive-tests: true
compiler: gcc
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install dependencies
uses: ./.github/workflows/install-dependencies-ubuntu
- name: Install compiler
uses: ./.github/workflows/install-compiler-ubuntu
with:
compiler: ${{env.compiler}}
compiler-version: ${{matrix.compiler-version}}
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.build-type}} -DCMAKE_TOOLCHAIN_FILE="$(pwd)/toolchains/${{env.compiler}}${{matrix.compiler-version}}.cmake" -DADDITIONAL_COMPILER_FLAGS="${{env.warnings}}" -DUSE_PARALLEL=true -DRUN_EXPENSIVE_TESTS=${{env.expensive-tests}} -DENABLE_EXPENSIVE_CHECKS=true ${{matrix.additional-cmake-options}} -DADDITIONAL_LINKER_FLAGS="-B /usr/bin/mold"
- name: Build
# Build your program with the given configuration
run: |
KEEP_GOING=""
if [[ "${{ matrix.use-keep-going }}" == "true" ]]; then
KEEP_GOING="-k"
fi
IGNORE_ERRORS=""
if [[ "${{ matrix.use-ignore-errors }}" == "true" ]]; then
IGNORE_ERRORS="-i"
fi
set -o pipefail # the `tee` will never fail, but the `build` command might. We want to fail if the build fails.
cmake --build ${{github.workspace}}/build --target QleverTest --config ${{env.build-type}} -- $IGNORE_ERRORS $KEEP_GOING -j $(nproc) 2>&1 | tee /tmp/build.log
id: build
- name: Run gcc8 log analyzer on gcc8 builds
if: matrix.compiler-version == 8
run: |
python ${{ github.workspace }}/misc/gcc8_logs_analyzer.py /tmp/build.log --on-github
id: gcc8_log_analyzer
- name: Test
id: runTest
if: (matrix.compiler-version == 11)
working-directory: ${{github.workspace}}/build/test
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: env CTEST_OUTPUT_ON_FAILURE=1 ctest -C ${{matrix.build-type}} . -L QleverTest