name: build on: [push, pull_request] jobs: linux: timeout-minutes: 15 strategy: matrix: os: [ubuntu-latest, ubuntu-20.04] compiler: - { pkg: g++, exe: 'g++', version: 7 } - { pkg: g++, exe: 'g++', version: 8 } - { pkg: g++, exe: 'g++', version: 9 } - { pkg: g++, exe: 'g++', version: 10 } - { pkg: g++, exe: 'g++', version: 11 } - { pkg: g++, exe: 'g++', version: 12 } - { pkg: clang, exe: 'clang++', version: 8 } - { pkg: clang, exe: 'clang++', version: 9 } - { pkg: clang, exe: 'clang++', version: 10 } - { pkg: clang, exe: 'clang++', version: 11 } - { pkg: clang, exe: 'clang++', version: 12 } - { pkg: clang, exe: 'clang++', version: 13 } - { pkg: clang, exe: 'clang++', version: 14 } exclude: - os: ubuntu-latest compiler: { pkg: g++, exe: 'g++', version: 7 } - os: ubuntu-latest compiler: { pkg: g++, exe: 'g++', version: 8 } - os: ubuntu-latest compiler: { pkg: g++, exe: 'g++', version: 9 } - os: ubuntu-latest compiler: { pkg: clang, exe: 'clang++', version: 8 } - os: ubuntu-latest compiler: { pkg: clang, exe: 'clang++', version: 9 } - os: ubuntu-latest compiler: { pkg: clang, exe: 'clang++', version: 10 } - os: ubuntu-latest compiler: { pkg: clang, exe: 'clang++', version: 11 } - os: ubuntu-20.04 compiler: { pkg: g++, exe: 'g++', version: 10 } - os: ubuntu-20.04 compiler: { pkg: g++, exe: 'g++', version: 11 } - os: ubuntu-20.04 compiler: { pkg: g++, exe: 'g++', version: 12 } - os: ubuntu-20.04 compiler: { pkg: clang, exe: 'clang++', version: 12 } - os: ubuntu-20.04 compiler: { pkg: clang, exe: 'clang++', version: 13 } - os: ubuntu-20.04 compiler: { pkg: clang, exe: 'clang++', version: 14 } runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Install compiler run: | sudo apt update sudo apt install -y ${{ matrix.compiler.pkg }}-${{ matrix.compiler.version }} - name: Compile tests working-directory: build env: CXX: ${{ matrix.compiler.exe }}-${{ matrix.compiler.version }} run: | cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON .. make -j4 - name: Run tests working-directory: build env: CTEST_OUTPUT_ON_FAILURE: 1 run: ctest --timeout 30 -C Debug -j4 windows: timeout-minutes: 15 strategy: matrix: toolset: [default, v141, v142, clang-cl] include: - toolset: v141 toolset_option: -T"v141" - toolset: v142 toolset_option: -T"v142" - toolset: clang-cl toolset_option: -T"ClangCl" runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: Compile tests working-directory: build run: | cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON ${{ matrix.toolset_option }} .. cmake --build . -j 4 - name: Run tests working-directory: build env: CTEST_OUTPUT_ON_FAILURE: 1 run: ctest --timeout 30 -C Debug -j4 macos: timeout-minutes: 15 runs-on: macOS-latest steps: - uses: actions/checkout@v3 - name: Compile tests working-directory: build run: | cmake -DENTT_BUILD_TESTING=ON -DENTT_BUILD_LIB=ON -DENTT_BUILD_EXAMPLE=ON .. make -j4 - name: Run tests working-directory: build env: CTEST_OUTPUT_ON_FAILURE: 1 run: ctest --timeout 30 -C Debug -j4 extra: timeout-minutes: 15 strategy: matrix: os: [windows-latest, macOS-latest, ubuntu-latest] id_type: ["std::uint32_t", "std::uint64_t"] cxx_std: [cxx_std_17, cxx_std_20] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Compile tests working-directory: build run: | cmake -DENTT_BUILD_TESTING=ON -DENTT_CXX_STD=${{ matrix.cxx_std }} -DENTT_ID_TYPE=${{ matrix.id_type }} .. cmake --build . -j 4 - name: Run tests working-directory: build env: CTEST_OUTPUT_ON_FAILURE: 1 run: ctest --timeout 30 -C Debug -j4