filesystem/.github/workflows/build_cmake.yml
Steffen Schuemann 495457726f workflow wip
2021-07-03 18:38:04 +02:00

79 lines
2.1 KiB
YAML

name: CMake Build Matrix
on: [ push, pull_request ]
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: "Ubuntu latest GCC 9.3"
os: ubuntu-20.04
build_type: Release
packages: ninja-build
generator: Ninja
cc: gcc
cxx: g++
- name: "Ubuntu 18.04 GCC 8.4"
os: ubuntu-18.04
build_type: Release
packages: ninja-build gcc-8 g++-8
generator: Ninja
cc: gcc-8
cxx: g++-8
- name: "Windows MSVC 2019"
os: windows-latest
build_type: Release
packages: ninja
generator: "Visual Studio 16 2019"
- name: "macOS 10.15 AppleClang"
os: windows-latest
build_type: Release
packages: ninja
generator: Ninja
steps:
- uses: actions/checkout@v2
- name: print environment
run: |
echo github.event.action: ${{ github.event.action }}
echo github.event_name: ${{ github.event_name }}
- name: Install dependencies on Ubuntu
if: startsWith(matrix.config.os, 'ubuntu')
run: |
sudo apt install ${{ matrix.config.packages }}
- name: Install dependencies on windows
if: startsWith(matrix.config.os, 'windows')
run: |
choco install ${{ matrix.config.packages }}
- name: Install dependencies on macOS
if: startsWith(matrix.config.os, 'macos')
run: |
brew install ${{ matrix.config.packages }}
- name: Configure project
shell: bash
run: |
ninja --version
cmake --version
mkdir build
mkdir install
cmake -G "${{ matrix.config.generator }}" -S . -B build -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DCMAKE_INSTALL_PREFIX:PATH=install
- name: Build project
shell: bash
run: cmake --build build --config ${{ matrix.config.build_type }}
- name: Run tests
run: cd build && ctest