Skip to content

style: Update style and reformat code #217

style: Update style and reformat code

style: Update style and reformat code #217

name: Building and testing
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions: {}
jobs:
windows_msvc:
name: Build and test on Windows with MSVC
env:
CONFIGURE_PRESET_NAME: windows-x64
DEBUG_BUILD_PRESET_NAME: windows-x64-debug
RELEASE_BUILD_PRESET_NAME: windows-x64-release
DEBUG_BINARY_DIR: ${{ github.workspace }}\out\build\windows-x64\Debug
RELEASE_BINARY_DIR: ${{ github.workspace }}\out\build\windows-x64\Release
runs-on: windows-2022
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check out vcpkg
uses: actions/checkout@v4
with:
repository: microsoft/vcpkg
path: ${{ github.workspace }}\vcpkg
persist-credentials: false
- name: Bootstrap vcpkg
run: .\vcpkg\bootstrap-vcpkg.bat -disableMetrics
- name: Apply vcpkg cache
id: vcpkg-cache
uses: actions/cache@v4
with:
path: |-
%VCPKG_DEFAULT_BINARY_CACHE%
${{ github.workspace }}\vcpkg
key: >-
${{ runner.os }}-vcpkg-archives-cache-${{ hashFiles(
'vcpkg\ports\catch2\vcpkg.json',
'vcpkg\ports\fmt\vcpkg.json',
'vcpkg\ports\nameof\vcpkg.json',
'vcpkg\ports\nanobench\vcpkg.json'
) }}
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build for testing
run: >-
cmake
--build
--preset '${{ env.DEBUG_BUILD_PRESET_NAME }}'
- name: Build for benchmarking
run: >-
cmake
--build
--preset '${{ env.RELEASE_BUILD_PRESET_NAME }}'
- name: Run tests
run: >-
.\tests.exe
--reporter console::out=-::colour-mode=ansi
--rng-seed 1654047489
--success
working-directory: ${{ env.DEBUG_BINARY_DIR }}
- name: Run benchmarks
run: >-
.\benchmark.exe
--durations yes
--reporter console::out=-::colour-mode=ansi
--rng-seed 1654047489
working-directory: ${{ env.RELEASE_BINARY_DIR }}
linux:
name: Build and test on Ubuntu
env:
CONFIGURE_PRESET_NAME: generic
DEBUG_BUILD_PRESET_NAME: generic-debug
RELEASE_BUILD_PRESET_NAME: generic-release
DEBUG_BINARY_DIR: ${{ github.workspace }}/out/build/generic/Debug
RELEASE_BINARY_DIR: ${{ github.workspace }}/out/build/generic/Release
runs-on: ubuntu-22.04
steps:
- name: Install Ninja
run: |-
sudo apt-get update
sudo apt-get install ninja-build
- name: Check out repository
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Check out vcpkg
uses: actions/checkout@v4
with:
repository: microsoft/vcpkg
path: ${{ github.workspace }}/vcpkg
persist-credentials: false
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
- name: Apply vcpkg cache
id: vcpkg-cache
uses: actions/cache@v4
with:
path: |-
%VCPKG_DEFAULT_BINARY_CACHE%
${{ github.workspace }}/vcpkg
key: >-
${{ runner.os }}-vcpkg-archives-cache-${{ hashFiles(
'vcpkg/ports/catch2/vcpkg.json',
'vcpkg/ports/fmt/vcpkg.json',
'vcpkg/ports/nameof/vcpkg.json',
'vcpkg/ports/nanobench/vcpkg.json'
) }}
- name: Configure CMake for testing
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
-DCMAKE_BUILD_TYPE='${{ env.CONFIG }}'
- name: Build for testing
run: >-
cmake
--build
--preset '${{ env.DEBUG_BUILD_PRESET_NAME }}'
- name: Build for benchmarking
run: >-
cmake
--build
--preset '${{ env.RELEASE_BUILD_PRESET_NAME }}'
- name: Run tests
run: >-
./tests
--reporter console::out=-::colour-mode=ansi
--rng-seed 1654047489
--success
working-directory: ${{ env.DEBUG_BINARY_DIR }}
- name: Run benchmarks
run: >-
./benchmark
--durations yes
--reporter console::out=-::colour-mode=ansi
--rng-seed 1654047489
working-directory: ${{ env.RELEASE_BINARY_DIR }}