Skip to content

refactor: Revisit quicksort #72

refactor: Revisit quicksort

refactor: Revisit quicksort #72

name: Building and testing
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
build_dir: ${{ github.workspace }}/build
config: Debug
permissions: {}
jobs:
windows_vcpp:
name: Build and test on Windows with VC++
runs-on: windows-latest
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 -B "${{ env.build_dir }}"
-DBUILD_SHARED_LIBS=TRUE
-DCMAKE_BUILD_TYPE="${{ env.config }}"
-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE
- name: Build
run: cmake --build "${{ env.build_dir }}" --config "${{ env.config }}"
working-directory: ${{github.workspace}}
- name: Run tests
run: >-
.\tests.exe
--reporter console::out=-::colour-mode=ansi
--rng-seed 1654047489
--success
working-directory: ${{ env.build_dir }}\${{ env.config }}
- name: Run benchmarks
run: >-
.\benchmark.exe
--rng-seed 1654047489
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.build_dir }}\${{ env.config }}
linux:
name: Build and test on Ubuntu
runs-on: ubuntu-latest
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.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
run: >-
cmake -B "${{ env.build_dir }}"
-DBUILD_SHARED_LIBS=TRUE
-DCMAKE_BUILD_TYPE="${{ env.config }}"
- name: Build
run: cmake --build "${{ env.build_dir }}" --config "${{ env.config }}"
working-directory: ${{github.workspace}}
# TODO: Sorting tests
- name: Run tests
run: >-
./tests
--reporter console::out=-::colour-mode=ansi
--rng-seed 1654047489
--success
working-directory: ${{ env.build_dir }}
# TODO: Enable all benchmarks
- name: Run benchmarks
run: >-
./benchmark
--rng-seed 1654047489
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.build_dir }}