Skip to content

Use slightly older nix #281

Use slightly older nix

Use slightly older nix #281

Workflow file for this run

name: All OS
on: [push, pull_request]
jobs:
apple-clang:
name: AppleClang XCode ${{ matrix.xcode }} MacOS C++${{ matrix.cxx }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-15]
xcode: [16.0, 16.1, 16.2, 16.3]
cxx: [20, 23, 26]
steps:
- uses: actions/checkout@v4
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ matrix.xcode }}
- name: get-cmake
uses: lukka/get-cmake@v3.31.6
- name: Run vcpkg
uses: lukka/run-vcpkg@v11
with:
# Location of the vcpkg as submodule of the repository.
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
vcpkgGitCommitId: '4334d8b4c8916018600212ab4dd4bbdc343065d1'
# Since the cache must be invalidated when content of the vcpkg.json file changes, let's
# compute its hash and append this to the computed cache's key.
appendedCacheKey: ${{ hashFiles( '**/vcpkg.json' ) }}
- name: 'run cmake'
uses: lukka/run-cmake@v10
with:
configurepreset: 'ci-macos'
buildpreset: 'ci-macos'
testpreset: 'ci-macos'
configurepresetcmdstring: '[`--preset`, `$[env.CONFIGURE_PRESET_NAME]`, `-DCMAKE_CXX_STANDARD=${{ matrix.cxx }}`]'
linux-clang:
name: Clang ${{ matrix.clang }} Linux C++${{ matrix.cxx }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
clang: [16, 17, 18, 19, 20]
cxx: [20, 23, 26]
exclude:
- clang: 16
cxx: 23
- clang: 17
cxx: 23
- clang: 17
cxx: 26
- clang: 16
cxx: 26
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: nicknovitski/nix-develop@v1
with:
arguments: ".#ci-clang${{ matrix.clang }}"
- name: 'Run CMake'
uses: lukka/run-cmake@v10
with:
configurePreset: 'ci-linux'
buildPreset: 'ci-linux'
testPreset: 'ci-linux'
configurePresetCmdString: '[`--preset`, `$[env.CONFIGURE_PRESET_NAME]`, `-DCMAKE_CXX_STANDARD=${{ matrix.cxx }}`]'
linux-old-gcc:
name: GCC ${{ matrix.gcc }} Linux C++${{ matrix.cxx }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
gcc: [11, 12]
cxx: [20, 23]
exclude:
- gcc: 11
cxx: 23
steps:
- uses: actions/checkout@v4
- uses: lukka/get-cmake@v3.31.0
- name: Set up GCC
uses: egor-tensin/setup-gcc@v1
with:
version: ${{ matrix.gcc }}
platform: x64
- name: 'Run CMake'
uses: lukka/run-cmake@v10
with:
configurePreset: 'ci-linux'
buildPreset: 'ci-linux'
testPreset: 'ci-linux'
configurePresetCmdString: '[`--preset`, `$[env.CONFIGURE_PRESET_NAME]`]'
linux-gcc:
name: GCC ${{ matrix.gcc }} Linux C++${{ matrix.cxx }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
gcc: [13, 14, 15]
cxx: [20, 23, 26]
exclude:
- gcc: 13
cxx: 26
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: nicknovitski/nix-develop@v1
with:
arguments: ".#ci-gcc${{ matrix.gcc }}"
- name: 'Run CMake'
uses: lukka/run-cmake@v10
with:
configurePreset: 'ci-linux'
buildPreset: 'ci-linux'
testPreset: 'ci-linux'
configurePresetCmdString: '[`--preset`, `$[env.CONFIGURE_PRESET_NAME]`]'
windows-msvc:
runs-on: windows-latest
name: MSVC ${{ matrix.msvc-version }} Windows C++${{ matrix.cxx }}
strategy:
fail-fast: false
matrix:
os: [windows-2022]
arch: [x64]
cxx: [20, 23]
steps:
- uses: actions/checkout@v4
- uses: egor-tensin/vs-shell@v2
with:
arch: ${{ matrix.arch }}
- name: get-cmake
uses: lukka/get-cmake@v3.31.6
- name: Run vcpkg
uses: lukka/run-vcpkg@v11
with:
# Location of the vcpkg as submodule of the repository.
vcpkgDirectory: '${{ github.workspace }}/vcpkg'
useVcpkgToolchainFile: true
vcpkgGitCommitId: '4334d8b4c8916018600212ab4dd4bbdc343065d1'
# Since the cache must be invalidated when content of the vcpkg.json file changes, let's
# compute its hash and append this to the computed cache's key.
appendedCacheKey: ${{ hashFiles( '**/vcpkg.json' ) }}
- name: 'Run CMake'
uses: lukka/run-cmake@v10
with:
configurePreset: 'ci-windows'
buildPreset: 'ci-windows'
testPreset: 'ci-windows'
configurePresetCmdString: '[`--preset`, `$[env.CONFIGURE_PRESET_NAME]`, `-DCMAKE_CXX_STANDARD=${{ matrix.cxx }}`]'