feat: allow template specialization #736
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Regression tests | |
on: | |
pull_request: | |
paths-ignore: | |
- 'docs/**' | |
push: | |
paths-ignore: | |
- 'docs/**' | |
workflow_dispatch: | |
jobs: | |
regression-tests: | |
name: ${{ matrix.shortosname }} | ${{ matrix.compiler }} | ${{ matrix.cxx_std }} | ${{ matrix.stdlib }} | ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
env: | |
CXX: ${{ matrix.compiler }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04] | |
shortosname: [ubu-24] | |
compiler: [g++-14, g++-13] | |
cxx_std: [c++2b] | |
stdlib: [libstdc++] | |
include: | |
- os: ubuntu-20.04 | |
shortosname: ubu-20 | |
compiler: g++-10 | |
cxx_std: c++20 | |
stdlib: libstdc++ | |
- os: ubuntu-24.04 | |
shortosname: ubu-24 | |
compiler: clang++-18 | |
cxx_std: c++20 | |
stdlib: libstdc++ | |
- os: ubuntu-24.04 | |
shortosname: ubu-24 | |
compiler: clang++-18 | |
cxx_std: c++23 | |
stdlib: libc++-18-dev | |
- os: ubuntu-22.04 | |
shortosname: ubu-22 | |
compiler: clang++-15 | |
cxx_std: c++20 | |
stdlib: libstdc++ | |
- os: ubuntu-22.04 | |
shortosname: ubu-22 | |
compiler: clang++-15 | |
cxx_std: c++20 | |
stdlib: libc++-15-dev | |
- os: ubuntu-20.04 | |
shortosname: ubu-20 | |
compiler: clang++-12 | |
cxx_std: c++20 | |
stdlib: libstdc++ | |
- os: macos-14 | |
shortosname: mac-14 | |
compiler: clang++ | |
cxx_std: c++2b | |
stdlib: default | |
- os: macos-13 | |
shortosname: mac-13 | |
compiler: clang++ | |
cxx_std: c++2b | |
stdlib: default | |
- os: macos-13 | |
shortosname: mac-13 | |
compiler: clang++-15 | |
cxx_std: c++2b | |
stdlib: default | |
- os: windows-2022 | |
shortosname: win-22 | |
compiler: cl.exe | |
cxx_std: c++latest | |
stdlib: default | |
- os: windows-2022 | |
shortosname: win-22 | |
compiler: cl.exe | |
cxx_std: c++20 | |
stdlib: default | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Prepare compilers | |
if: matrix.os == 'macos-13' | |
run: | | |
sudo xcode-select --switch /Applications/Xcode_14.3.1.app | |
sudo ln -s "$(brew --prefix llvm@15)/bin/clang" /usr/local/bin/clang++-15 | |
- name: Run regression tests - Linux and macOS version | |
if: startsWith(matrix.os, 'ubuntu') || startsWith(matrix.os, 'macos') | |
run: | | |
cd regression-tests | |
bash run-tests.sh -c ${{ matrix.compiler }} -s ${{ matrix.cxx_std }} -d ${{ matrix.stdlib }} -l ${{ matrix.os }} | |
- name: Run regression tests - Windows version | |
if: startsWith(matrix.os, 'windows') | |
run: | | |
"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && ^ | |
git config --local core.autocrlf false && ^ | |
cd regression-tests && ^ | |
bash run-tests.sh -c ${{ matrix.compiler }} -s ${{ matrix.cxx_std }} -d ${{ matrix.stdlib }} -l ${{ matrix.os }} | |
shell: cmd | |
- name: Upload patch | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.cxx_std }}-${{ matrix.stdlib }}.patch | |
path: regression-tests/${{ matrix.os }}-${{ matrix.compiler }}-${{ matrix.cxx_std }}-${{ matrix.stdlib }}.patch | |
if-no-files-found: ignore | |
aggregate-results: | |
needs: regression-tests | |
if: success() || failure() | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download all patches | |
uses: actions/download-artifact@v4 | |
with: | |
path: downloaded-results | |
- name: Prepare result files | |
id: prepare_files | |
run: | | |
mkdir aggregated-results | |
echo "Flattening file hierarchy" | |
find . -type f -wholename "./downloaded-results*" -exec mv {} aggregated-results \; | |
patch_count=$(ls aggregated-results 2>/dev/null | wc -l) | |
echo "patch_count=${patch_count}" >> $GITHUB_OUTPUT | |
- name: Upload aggregated results | |
if: steps.prepare_files.outputs.patch_count != '0' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aggregated-results | |
path: aggregated-results | |
if-no-files-found: ignore |