88 lines
2.0 KiB
YAML
88 lines
2.0 KiB
YAML
|
|
name: CI
|
|
|
|
on: pull_request
|
|
|
|
jobs:
|
|
|
|
test:
|
|
|
|
name: ${{ matrix.toolchain }}
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
toolchain:
|
|
- macos-latest-clang
|
|
- macos-12-clang
|
|
- ubuntu-latest-clang
|
|
- ubuntu-latest-gcc
|
|
- windows-2019-msvc
|
|
- windows-latest-msvc
|
|
- windows-latest-clang
|
|
|
|
include:
|
|
- toolchain: macos-latest-clang
|
|
os: macos-latest
|
|
c_compiler: clang
|
|
cxx_compiler: clang++
|
|
|
|
- toolchain: macos-12-clang
|
|
os: macos-latest
|
|
c_compiler: clang
|
|
cxx_compiler: clang++
|
|
|
|
- toolchain: ubuntu-latest-clang
|
|
os: ubuntu-latest
|
|
c_compiler: clang
|
|
cxx_compiler: clang++
|
|
|
|
- toolchain: ubuntu-latest-gcc
|
|
os: ubuntu-latest
|
|
c_compiler: cc
|
|
cxx_compiler: g++
|
|
|
|
- toolchain: windows-2019-msvc
|
|
os: windows-2019
|
|
c_compiler: msvc
|
|
cxx_compiler: msvc
|
|
|
|
- toolchain: windows-latest-msvc
|
|
os: windows-latest
|
|
c_compiler: msvc
|
|
cxx_compiler: msvc
|
|
|
|
- toolchain: windows-latest-clang
|
|
os: windows-latest
|
|
c_compiler: clang-cl
|
|
cxx_compiler: clang-cl
|
|
cmake_opts: -T ClangCL
|
|
|
|
steps:
|
|
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Configure
|
|
working-directory: test
|
|
run: cmake -S . -B build ${{ matrix.cmake_opts }}
|
|
env:
|
|
CC: ${{ matrix.c_compiler }}
|
|
CXX: ${{ matrix.cxx_compiler }}
|
|
|
|
- name: Build for ${{ matrix.os }} with ${{ matrix.compiler }}
|
|
working-directory: test
|
|
run: cmake --build build
|
|
|
|
- name: Test
|
|
if: ${{ ! startsWith(matrix.os, 'windows') }}
|
|
working-directory: test/build
|
|
run: ./tests
|
|
|
|
- name: Test (Windows)
|
|
if: ${{ startsWith(matrix.os, 'windows') }}
|
|
working-directory: test/build
|
|
run: ./Debug/tests.exe
|