Try GitHub Actions without Workaround for incompatible clang and libs… #45
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
env: | |
PROJECT: EXPECTED_LITE | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
gcc: | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [9, 10, 11] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install GCC ${{ matrix.version }} | |
run: sudo apt-get install -y gcc-${{ matrix.version }} g++-${{ matrix.version }} | |
- name: Configure tests | |
env: | |
CXX: g++-${{ matrix.version }} | |
run: cmake -S . -B build | |
-D CMAKE_BUILD_TYPE:STRING=Release | |
-D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
-D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
-D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
- name: Build tests | |
run: cmake --build build -j 4 | |
- name: Run tests | |
working-directory: build | |
run: ctest --output-on-failure -j 4 | |
clang: | |
strategy: | |
fail-fast: false | |
matrix: | |
version: [11, 12] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Workaround for incompatible clang and libstc++ versions, see | |
# <https://github.com/actions/runner-images/issues/8659> for more info. | |
# The basic idea here is to remove g++ 13 and its C++ standard library | |
# and replace that with a compatible version of libstdc++. | |
# - name: Workaround for GHA issue 8659 | |
# run: | | |
# sudo apt-get purge -y g++-13 gcc-13 libstdc++-13-dev | |
# sudo apt-get install -y --allow-downgrades libstdc++-12-dev libstdc++6=12.* libgcc-s1=12.* | |
- name: Install Clang ${{ matrix.version }} | |
run: sudo apt-get install -y clang-${{ matrix.version }} | |
- name: Configure tests | |
env: | |
CXX: clang-${{ matrix.version }} | |
run: cmake -S . -B build | |
-D CMAKE_CXX_COMPILER=clang++-${{ matrix.version }} | |
-D CMAKE_BUILD_TYPE:STRING=Release | |
-D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
-D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
-D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
- name: Build tests | |
run: cmake --build build -j 4 | |
- name: Run tests | |
working-directory: build | |
run: ctest --output-on-failure -j 4 | |
msvc: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-2019, windows-2022] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure tests | |
run: cmake -S . -B build | |
-D ${{ env.PROJECT }}_OPT_SELECT_NONSTD=ON | |
-D ${{ env.PROJECT }}_OPT_BUILD_TESTS=ON | |
-D ${{ env.PROJECT }}_OPT_BUILD_EXAMPLES=OFF | |
- name: Build tests | |
run: cmake --build build --config Release -j 4 | |
- name: Run tests | |
working-directory: build | |
run: ctest -C Release --output-on-failure -j 4 |