Merge pull request #990 from jengelh/master #167
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: [ push, pull_request, workflow_dispatch ] | |
jobs: | |
test: | |
name: ${{ matrix.os }}, ${{ matrix.cmake_name }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ windows-2019, macos-latest, ubuntu-20.04 ] | |
cmake: [ 3.15, 3.x ] | |
include: | |
- os: windows-2019 | |
static_postfix: _static | |
tree: tree /F | |
CXX: cl | |
- os: ubuntu-20.04 | |
tree: tree | |
- os: macos-latest | |
tree: find | |
- cmake: 3.15 | |
cmake_name: CMake 3.15 | |
- cmake: 3.x | |
cmake_name: Latest CMake | |
env: | |
# CMake 3.15 doesn't detect Visual Studio correctly without these. | |
CXX: ${{ matrix.CXX }} | |
CC: ${{ matrix.CXX }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
# System set-up | |
- uses: actions/checkout@v2 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- uses: seanmiddleditch/gha-setup-ninja@master | |
- uses: jwlawson/[email protected] | |
with: | |
cmake-version: ${{ matrix.cmake }} | |
# Static Debug | |
- name: "Static Debug: Configure" | |
run: cmake -G Ninja -S . -B build-static-dbg -DCMAKE_BUILD_TYPE=Debug "-DCMAKE_DEBUG_POSTFIX=d${{matrix.static_postfix}}" | |
- name: "Static Debug: Build" | |
run: cmake --build build-static-dbg | |
- name: "Static Debug: Test" | |
run: ctest --output-on-failure | |
working-directory: build-static-dbg | |
# Shared Debug | |
- name: "Shared Debug: Configure" | |
run: cmake -G Ninja -S . -B build-shared-dbg -DCMAKE_BUILD_TYPE=Debug -DCMAKE_DEBUG_POSTFIX=d -DBUILD_SHARED_LIBS=ON | |
- name: "Shared Debug: Build" | |
run: cmake --build build-shared-dbg | |
- name: "Shared Debug: Test" | |
run: ctest --output-on-failure | |
working-directory: build-shared-dbg | |
# Static Release | |
- name: "Static Release: Configure" | |
run: cmake -G Ninja -S . -B build-static-rel -DCMAKE_BUILD_TYPE=Release "-DCMAKE_RELEASE_POSTFIX=${{matrix.static_postfix}}" | |
- name: "Static Release: Build" | |
run: cmake --build build-static-rel | |
- name: "Static Release: Test" | |
run: ctest --output-on-failure | |
working-directory: build-static-rel | |
# Shared Release | |
- name: "Shared Release: Configure" | |
run: cmake -G Ninja -S . -B build-shared-rel -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON | |
- name: "Shared Release: Build" | |
run: cmake --build build-shared-rel | |
- name: "Shared Release: Test" | |
run: ctest --output-on-failure | |
working-directory: build-shared-rel | |
# Joint install | |
- name: Install | |
run: | | |
cmake --install build-shared-dbg --prefix install | |
cmake --install build-static-dbg --prefix install | |
cmake --install build-shared-rel --prefix install | |
cmake --install build-static-rel --prefix install | |
- name: List install tree | |
run: ${{matrix.tree}} install | |
# Test find_package | |
- name: "Test find_package: Static Debug" | |
run: >- | |
ctest --build-and-test test test-static-dbg | |
--build-generator Ninja | |
--build-options -DCMAKE_BUILD_TYPE=Debug -Dtinyxml2_SHARED_LIBS=NO -DCMAKE_PREFIX_PATH=${{github.workspace}}/install | |
--test-command ctest --output-on-failure | |
- name: "Test find_package: Static Release" | |
run: >- | |
ctest --build-and-test test test-static-rel | |
--build-generator Ninja | |
--build-options -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_SHARED_LIBS=NO -DCMAKE_PREFIX_PATH=${{github.workspace}}/install | |
--test-command ctest --output-on-failure | |
- name: "Test find_package: Shared Debug" | |
run: >- | |
ctest --build-and-test test test-shared-dbg | |
--build-generator Ninja | |
--build-options -DCMAKE_BUILD_TYPE=Debug -Dtinyxml2_SHARED_LIBS=YES -DCMAKE_PREFIX_PATH=${{github.workspace}}/install | |
--test-command ctest --output-on-failure | |
- name: "Test find_package: Shared Release" | |
run: >- | |
ctest --build-and-test test test-shared-rel | |
--build-generator Ninja | |
--build-options -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_SHARED_LIBS=YES -DCMAKE_PREFIX_PATH=${{github.workspace}}/install | |
--test-command ctest --output-on-failure |