mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-16 18:52:25 +01:00
d1d7414eb9
The base images for GitHub Actions are updated weekly, but sometimes that is not enough to be able to install the packages we require. The recommended fix for this is to always run `apt-get update` before `apt-get install`.
125 lines
3.5 KiB
YAML
125 lines
3.5 KiB
YAML
name: Linux builds (basic)
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
name: ${{matrix.cxx}}, C++${{matrix.std}}, ${{matrix.build_type}}
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
cxx:
|
|
- g++-5
|
|
- g++-6
|
|
- g++-7
|
|
- g++-8
|
|
- g++-9
|
|
- g++-10
|
|
- clang++-6.0
|
|
- clang++-7
|
|
- clang++-8
|
|
- clang++-9
|
|
- clang++-10
|
|
build_type: [Debug, Release]
|
|
std: [14]
|
|
include:
|
|
- cxx: g++-5
|
|
other_pkgs: g++-5
|
|
- cxx: g++-6
|
|
other_pkgs: g++-6
|
|
- cxx: g++-7
|
|
other_pkgs: g++-7
|
|
- cxx: g++-8
|
|
other_pkgs: g++-8
|
|
- cxx: g++-9
|
|
other_pkgs: g++-9
|
|
- cxx: g++-10
|
|
other_pkgs: g++-10
|
|
- cxx: clang++-6.0
|
|
other_pkgs: clang-6.0
|
|
- cxx: clang++-7
|
|
other_pkgs: clang-7
|
|
- cxx: clang++-8
|
|
other_pkgs: clang-8
|
|
- cxx: clang++-9
|
|
other_pkgs: clang-9
|
|
- cxx: clang++-10
|
|
other_pkgs: clang-10
|
|
# Clang 6 + C++17
|
|
# does not work with the default libstdc++ version thanks
|
|
# to a disagreement on variant implementation.
|
|
# - cxx: clang++-6.0
|
|
# build_type: Debug
|
|
# std: 17
|
|
# other_pkgs: clang-6.0
|
|
# - cxx: clang++-6.0
|
|
# build_type: Release
|
|
# std: 17
|
|
# other_pkgs: clang-6.0
|
|
# Clang 10 + C++17
|
|
- cxx: clang++-10
|
|
build_type: Debug
|
|
std: 17
|
|
other_pkgs: clang-10
|
|
- cxx: clang++-10
|
|
build_type: Release
|
|
std: 17
|
|
other_pkgs: clang-10
|
|
- cxx: clang++-10
|
|
build_type: Debug
|
|
std: 20
|
|
other_pkgs: clang-10
|
|
- cxx: clang++-10
|
|
build_type: Release
|
|
std: 20
|
|
other_pkgs: clang-10
|
|
- cxx: g++-10
|
|
build_type: Debug
|
|
std: 20
|
|
other_pkgs: g++-10
|
|
- cxx: g++-10
|
|
build_type: Release
|
|
std: 20
|
|
other_pkgs: g++-10
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Add repositories for older GCC
|
|
run: |
|
|
sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ bionic main'
|
|
sudo apt-add-repository 'deb http://azure.archive.ubuntu.com/ubuntu/ bionic universe'
|
|
if: ${{ matrix.cxx == 'g++-5' || matrix.cxx == 'g++-6' }}
|
|
|
|
- name: Prepare environment
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y ninja-build ${{matrix.other_pkgs}}
|
|
|
|
- name: Configure build
|
|
working-directory: ${{runner.workspace}}
|
|
env:
|
|
CXX: ${{matrix.cxx}}
|
|
CXXFLAGS: ${{matrix.cxxflags}}
|
|
# Note: $GITHUB_WORKSPACE is distinct from ${{runner.workspace}}.
|
|
# This is important
|
|
run: |
|
|
cmake -Bbuild -H$GITHUB_WORKSPACE \
|
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
|
-DCMAKE_CXX_STANDARD=${{matrix.std}} \
|
|
-DCMAKE_CXX_STANDARD_REQUIRED=ON \
|
|
-DCMAKE_CXX_EXTENSIONS=OFF \
|
|
-DCATCH_DEVELOPMENT_BUILD=ON \
|
|
-G Ninja
|
|
|
|
- name: Build tests + lib
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: ninja
|
|
|
|
- name: Run tests
|
|
env:
|
|
CTEST_OUTPUT_ON_FAILURE: 1
|
|
working-directory: ${{runner.workspace}}/build
|
|
# Hardcode 2 cores we know are there
|
|
run: ctest -C ${{matrix.build_type}} -j 2
|