Skip to content

actions

actions #227

Workflow file for this run

---
name: Windows
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
msys2:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
sys: [mingw32, mingw64, ucrt64, clang64, clang32]
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
- name: 📂 Load .env file
if: hashFiles('.github/workflows/.env') != ''
uses: xom9ikk/dotenv@v2
with:
path: .github/workflows
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
path-type: minimal
release: true
update: true
pacboy: >-
gcc:p
cmake:p
- name: Run CMake
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
- name: Build
run: cmake --build build --parallel 2
- name: Test
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }}
msvc2019:
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
architecture: [win32, x64]
steps:
- uses: actions/checkout@v4
- name: 📂 Load .env file
if: hashFiles('.github/workflows/.env') != ''
uses: xom9ikk/dotenv@v2
with:
path: .github/workflows
- uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.architecture }}
- name: Run CMake
run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }}
- name: Build
run: cmake --build build --config Debug --parallel 2
- name: Test
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }}
msvc2022:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
architecture: [x64_x86, x64]
steps:
- uses: actions/checkout@v4
- name: 📂 Load .env file
if: hashFiles('.github/workflows/.env') != ''
uses: xom9ikk/dotenv@v2
with:
path: .github/workflows
- uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.architecture }}
- name: Run CMake
run: cmake -S . -B build -G "Visual Studio 17 2022" -A ${{ matrix.architecture }}
- name: Build
run: cmake --build build --config Debug --parallel 2
- name: Test
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }}
clang:
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
version: [7.1.0, 8.0.1, 9.0.1, 10.0.0, 11.0.1, 11.1.0, 12.0.1, 13.0.1, 14.0.6, 15.0.7, 16.0.6, 17.0.6, 18.1.4]
architecture: [x64_x86, x64]
steps:
- uses: actions/checkout@v4
- name: 📂 Load .env file
if: hashFiles('.github/workflows/.env') != ''
uses: xom9ikk/dotenv@v2
with:
path: .github/workflows
- uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.architecture }}
- name: Install Clang
run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}/LLVM-${{ matrix.version }}-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM"
- name: Run CMake
run: cmake -S . -B build -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" -DCMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang.exe" -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug
- name: Build
run: cmake --build build --parallel 2
- name: Test
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }}
clang-cl:
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
architecture: [x64_x86, x64]
version: [7.1.0, 8.0.1, 9.0.1, 10.0.0, 11.0.1, 11.1.0, 12.0.1, 13.0.1, 14.0.6, 15.0.7, 16.0.6, 17.0.6, 18.1.4]
steps:
- uses: actions/checkout@v4
- name: 📂 Load .env file
if: hashFiles('.github/workflows/.env') != ''
uses: xom9ikk/dotenv@v2
with:
path: .github/workflows
- uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.architecture }}
- name: Install Clang
run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}/LLVM-${{ matrix.version }}-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM"
- name: Run CMake
run: cmake -S . -B build -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" -DCMAKE_C_COMPILER="C:/Program Files/LLVM/bin/clang.exe" -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -T ClangCL
- name: Build
run: cmake --build build --config Debug --parallel 2
- name: Test
run: cd build ; ctest -C Debug --output-on-failure ${{ env.CTEST_VERBOSITY }}