Skip to content

refactor: Remove forward_list dependency on GSL #867

refactor: Remove forward_list dependency on GSL

refactor: Remove forward_list dependency on GSL #867

name: Building and testing
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions: {}
jobs:
msvc_debug_x86_64_windows:
name: Build (MSVC Debug x86-64 Windows)
env:
CONFIGURE_PRESET_NAME: windows-x64
BUILD_PRESET_NAME: windows-x64-debug
BINARY_DIR: ${{ github.workspace }}\out\build\windows-x64\Debug
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
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: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |-
core.exportVariable(
'ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''
);
core.exportVariable(
'ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''
);
- name: Bootstrap vcpkg
run: .\vcpkg\bootstrap-vcpkg.bat -disableMetrics
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build
run: >-
cmake
--build
--parallel
--preset ${{ env.BUILD_PRESET_NAME }}
--
-consoleLoggerParameters:ForceConsoleColor;ShowCommandLine
shell: cmd
- name: Run test driver
run: >-
.\test_driver.exe
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run test driver of experimental library
run: >-
.\test_driver_experimental.exe
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks
run: >-
.\benchmark_driver.exe
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks of experimental library
run: >-
.\benchmark_driver_experimental.exe
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
msvc_release_x86_64_windows:
name: Build (MSVC Release x86-64 Windows)
env:
CONFIGURE_PRESET_NAME: windows-x64
BUILD_PRESET_NAME: windows-x64-release
BINARY_DIR: ${{ github.workspace }}\out\build\windows-x64\Release
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
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: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |-
core.exportVariable(
'ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''
);
core.exportVariable(
'ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''
);
- name: Bootstrap vcpkg
run: .\vcpkg\bootstrap-vcpkg.bat -disableMetrics
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build
run: >-
cmake
--build
--parallel
--preset ${{ env.BUILD_PRESET_NAME }}
--
-consoleLoggerParameters:ForceConsoleColor;ShowCommandLine
shell: cmd
- name: Run test driver
run: >-
.\test_driver.exe
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run test driver of experimental library
run: >-
.\test_driver_experimental.exe
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks
run: >-
.\benchmark_driver.exe
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks of experimental library
run: >-
.\benchmark_driver_experimental.exe
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
gcc_debug_x86_64_linux:
name: Build (GCC Debug x86-64 Linux)
env:
CC: /usr/bin/gcc-14
CXX: /usr/bin/g++-14
CONFIGURE_PRESET_NAME: strict-gcc
BUILD_PRESET_NAME: strict-gcc-debug
BINARY_DIR: ${{ github.workspace }}/out/build/strict-gcc/Debug
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
runs-on: ubuntu-24.04
steps:
- name: Install tools
run: >-
sudo apt-get update
sudo apt-get install
ninja-build
valgrind
- 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: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |-
core.exportVariable(
'ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''
);
core.exportVariable(
'ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''
);
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build
run: >-
cmake
--build
--parallel
--preset '${{ env.BUILD_PRESET_NAME }}'
- name: Run and instrument test driver
run: >-
/usr/bin/valgrind
--tool=memcheck
--leak-check=full
--show-leak-kinds=all
./test_driver
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run and instrument test driver of experimental library
run: >-
/usr/bin/valgrind
--tool=memcheck
--leak-check=full
--show-leak-kinds=all
./test_driver_experimental
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks
run: >-
./benchmark_driver
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks of experimental library
run: >-
./benchmark_driver_experimental
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
gcc_release_x86_64_linux:
name: Build (GCC Release x86-64 Linux)
env:
CC: /usr/bin/gcc-14
CXX: /usr/bin/g++-14
CONFIGURE_PRESET_NAME: strict-gcc
BUILD_PRESET_NAME: strict-gcc-release
BINARY_DIR: ${{ github.workspace }}/out/build/strict-gcc/Release
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
runs-on: ubuntu-24.04
steps:
- name: Install tools
run: >-
sudo apt-get update
sudo apt-get install
ninja-build
valgrind
- 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: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |-
core.exportVariable(
'ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''
);
core.exportVariable(
'ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''
);
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build
run: >-
cmake
--build
--parallel
--preset '${{ env.BUILD_PRESET_NAME }}'
- name: Run and instrument test driver
run: >-
/usr/bin/valgrind
--tool=memcheck
--leak-check=full
--show-leak-kinds=all
./test_driver
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run and instrument test driver of experimental library
run: >-
/usr/bin/valgrind
--tool=memcheck
--leak-check=full
--show-leak-kinds=all
./test_driver_experimental
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks
run: >-
./benchmark_driver
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks of experimental library
run: >-
./benchmark_driver_experimental
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
apple_clang_debug_aarch64_macos:
name: Build (Apple Clang Debug AArch64 macOS)
env:
CONFIGURE_PRESET_NAME: xcode
BUILD_PRESET_NAME: xcode
BINARY_DIR: ${{ github.workspace }}/out/build/xcode/Debug
BUILD_CONFIGURATION: Debug
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
XCODE_RELEASE: "16.0"
runs-on: macos-15
steps:
- name: Set default Xcode release
run: >-
sudo xcode-select
-switch '/Applications/Xcode_${{ env.XCODE_RELEASE }}.app'
- 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: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |-
core.exportVariable(
'ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''
);
core.exportVariable(
'ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''
);
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build with sanitizers
run: >-
cmake
--build
--config '${{ env.BUILD_CONFIGURATION }}'
--parallel
--preset '${{ env.BUILD_PRESET_NAME }}'
--
-enableAddressSanitizer YES
-enableUndefinedBehaviorSanitizer YES
- name: Run test driver
run: >-
./test_driver
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run test driver of experimental library
run: >-
./test_driver_experimental
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks
run: >-
./benchmark_driver
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks of experimental library
run: >-
./benchmark_driver_experimental
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
apple_clang_release_aarch64_macos:
name: Build (Apple Clang Release AArch64 macOS)
env:
CONFIGURE_PRESET_NAME: xcode
BUILD_PRESET_NAME: xcode
BINARY_DIR: ${{ github.workspace }}/out/build/xcode/Release
BUILD_CONFIGURATION: Release
VCPKG_BINARY_SOURCES: clear;x-gha,readwrite
XCODE_RELEASE: "16.0"
runs-on: macos-15
steps:
- name: Set default Xcode release
run: >-
sudo xcode-select
-switch '/Applications/Xcode_${{ env.XCODE_RELEASE }}.app'
- 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: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |-
core.exportVariable(
'ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''
);
core.exportVariable(
'ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''
);
- name: Bootstrap vcpkg
run: ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
- name: Configure CMake
run: >-
cmake
--preset '${{ env.CONFIGURE_PRESET_NAME }}'
- name: Build
run: >-
cmake
--build
--config '${{ env.BUILD_CONFIGURATION }}'
--parallel
--preset '${{ env.BUILD_PRESET_NAME }}'
- name: Run test driver
run: >-
./test_driver
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run test driver of experimental library
run: >-
./test_driver_experimental
--reporter console::out=-::colour-mode=ansi
--success
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks
run: >-
./benchmark_driver
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}
- name: Run benchmarks of experimental library
run: >-
./benchmark_driver_experimental
--durations yes
--reporter console::out=-::colour-mode=ansi
working-directory: ${{ env.BINARY_DIR }}