mirror of
https://github.com/gulrak/filesystem.git
synced 2025-12-13 15:09:51 +08:00
79 lines
2.1 KiB
YAML
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
|