Skip to content

🎉 Begin project

🎉 Begin project #12

Workflow file for this run

name: Tests
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
tags:
- "v*"
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: false
jobs:
windows-build:
strategy:
fail-fast: false
matrix:
compiler:
[
{ c: "clang-cl", cxx: "clang-cl" },
{ c: "cl", cxx: "cl" },
]
name: Windows - ${{ matrix.compiler.cxx }}
runs-on: windows-latest
env:
triplet: x64-windows
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Configure VS Toolchain
uses: ilammy/msvc-dev-cmd@v1
- name: Install dependencies
run: vcpkg install gtest --triplet ${{ env.triplet }}
- name: Build and test
run: |
rm -rf "${{ github.workspace }}\build"
cmake -B "${{ github.workspace }}\build" -DCMAKE_TOOLCHAIN_FILE="$VCPKG_INSTALLATION_ROOT\\scripts\\buildsystems\\vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config"
# cmake --build "${{ github.workspace }}\build" --config Debug --clean-first
# ctest --test-dir "${{ github.workspace }}\build" -C Debug
cmake --build "${{ github.workspace }}\build" --config Release --clean-first
ctest --test-dir "${{ github.workspace }}\build" -C Release
shell: bash
ubuntu-build:
strategy:
fail-fast: false
matrix:
compiler:
[
{ c: "gcc-11", cxx: "g++-11" },
{ c: "gcc-12", cxx: "g++-12" },
{ c: "gcc-13", cxx: "g++-13" },
{
c: "$(brew --prefix llvm@15)/bin/clang",
cxx: "$(brew --prefix llvm@15)/bin/clang++",
},
{
c: "$(brew --prefix llvm@16)/bin/clang",
cxx: "$(brew --prefix llvm@16)/bin/clang++",
},
{
c: "$(brew --prefix llvm@17)/bin/clang",
cxx: "$(brew --prefix llvm@17)/bin/clang++",
},
]
name: Ubuntu - ${{ matrix.compiler.cxx }}
runs-on: ubuntu-latest
env:
triplet: x64-linux
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install compilers
run: |
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew install ninja llvm@12 llvm@13 llvm@14 llvm@15 llvm@16 llvm@17
- name: Install dependencies
run: CC=${{ matrix.compiler.c }} CXX=${{ matrix.compiler.cxx }} vcpkg install gtest --triplet ${{ env.triplet }}
- name: Build and test
run: |
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
rm -rf ${{ github.workspace }}/build
cmake -B ${{ github.workspace }}/build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config"
cmake --build ${{ github.workspace }}/build --config Debug --clean-first
ctest --test-dir ${{ github.workspace }}/build -C Debug
cmake --build ${{ github.workspace }}/build --config Release --clean-first
ctest --test-dir ${{ github.workspace }}/build -C Release
macos-build:
strategy:
fail-fast: false
matrix:
compiler:
[
{ c: "gcc-11", cxx: "g++-11" },
{ c: "gcc-12", cxx: "g++-12" },
{ c: "gcc-13", cxx: "g++-13" },
{
c: "$(brew --prefix llvm@16)/bin/clang",
cxx: "$(brew --prefix llvm@16)/bin/clang++",
},
{
c: "$(brew --prefix llvm@17)/bin/clang",
cxx: "$(brew --prefix llvm@17)/bin/clang++",
},
]
name: MacOS - ${{ matrix.compiler.cxx }}
runs-on: macos-latest
env:
triplet: x64-osx
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install compilers
run: brew install ninja llvm@12 llvm@13 llvm@14 llvm@15 llvm@16 llvm@17
- name: Install dependencies
run: CC=${{ matrix.compiler.c }} CXX=${{ matrix.compiler.cxx }} vcpkg install gtest --triplet ${{ env.triplet }}
- name: Build and test
run: |
rm -rf ${{ github.workspace }}/build
cmake -B ${{ github.workspace }}/build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=${{ env.triplet }} -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }} -G "Ninja Multi-Config"
cmake --build ${{ github.workspace }}/build --config Debug --clean-first
ctest --test-dir ${{ github.workspace }}/build -C Debug
cmake --build ${{ github.workspace }}/build --config Release --clean-first
ctest --test-dir ${{ github.workspace }}/build -C Release