vk-bootstrap/.github/workflows/ci_build.yml
Charles Giessen 1ab85e9e55 Run tests in CI scripts
Make use of CTest to manage running tests, and configure the project to
allow Catch2 to work with CTest
2023-10-09 13:24:09 -06:00

85 lines
2.9 KiB
Python

#!/usr/bin/env python3
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the “Software”), to deal in the Software without restriction, including without
# limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
# of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
# LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Copyright © 2021 Charles Giessen (charles@lunarg.com)
#
name: CI Build
on: [push, pull_request, workflow_dispatch]
jobs:
linux:
name: Linux
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
type: ["Debug", "Release"]
cc: ["gcc", "clang"]
cxx: ["g++", "clang++"]
exclude:
- cc: gcc
cxx: clang++
- cc: clang
cxx: g++
steps:
- uses: actions/checkout@v3
- uses: lukka/get-cmake@latest
with:
cmakeVersion: 3.15
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y xorg-dev
- name: CMake Configure
run: cmake -S. -B build -DCMAKE_BUILD_TYPE=${{matrix.type}} -DVK_BOOTSTRAP_WERROR=ON -DVK_BOOTSTRAP_TEST=ON
- name: CMake Build
run: cmake --build build
- name: Install
run: cmake --install build --prefix build/install
- name: Run tests
working-directory: ./build
run: ctest --output-on-failure -C ${{matrix.type}}
windows:
name: Windows
runs-on: windows-latest
strategy:
matrix:
arch: [ Win32, x64 ]
config: [ Debug, Release ]
steps:
- uses: actions/checkout@v3
- name: CMake Configure
run: cmake -S. -B build -D CMAKE_BUILD_TYPE=${{matrix.config}} -D VK_BOOTSTRAP_WERROR=ON -D VK_BOOTSTRAP_TEST=ON -A ${{matrix.arch}}
- name: CMake Build
run: cmake --build build
- name: Run tests
working-directory: ./build
run: ctest --output-on-failure -C ${{matrix.config}}