Skip to content

CI: Windows-2019 for CUDA 11.0-12.3, 2022 for 12.4+ #384

CI: Windows-2019 for CUDA 11.0-12.3, 2022 for 12.4+

CI: Windows-2019 for CUDA 11.0-12.3, 2022 for 12.4+ #384

Workflow file for this run

# Compile project on Windows
name: Windows
on:
push:
branches:
- '**'
paths:
- "**"
- "!.github/**"
- ".github/workflows/Windows.yml"
pull_request:
defaults:
run:
shell: bash
jobs:
build:
runs-on: ${{ matrix.cudacxx.os }}
strategy:
fail-fast: false
# Multiplicative build matrix
# optional exclude: can be partial, include: must be specific
matrix:
cudacxx:
# VS2022 must now use CUDA 12.4 or newer
- cuda: "12.4.0"
cuda_arch: "50"
hostcxx: "Visual Studio 17 2022"
os: windows-2022
# VS 2019 for 11.0-12.3
- cuda: "12.0.0"
cuda_arch: "50"
hostcxx: "Visual Studio 16 2019"
os: windows-2019
- cuda: "11.2.0"
cuda_arch: "35"
hostcxx: "Visual Studio 16 2019"
os: windows-2019
config:
- name: "Release"
config: "Release"
# Name the job based on matrix/env options
name: "build (${{ matrix.cudacxx.cuda }}, ${{ matrix.config.name }}, ${{ matrix.cudacxx.os }})"
# Define job-wide env constants, and promote matrix elements to env constants for portable steps.
env:
# Define constants
BUILD_DIR: "build"
BUILD_TESTS: "OFF"
# Port matrix options to environment, for more portability.
CUDA: ${{ matrix.cudacxx.cuda }}
CUDA_ARCH: ${{ matrix.cudacxx.cuda_arch }}
HOSTCXX: ${{ matrix.cudacxx.hostcxx }}
OS: ${{ matrix.cudacxx.os }}
CONFIG: ${{ matrix.config.config }}
# Kept for portable steps between this and the main repository.
VISUALISATION: "ON"
# Ensure MSVC >= 1940 works with CUDA <= 12.3
CUDAFLAGS: -allow-unsupported-compiler
steps:
- uses: actions/checkout@v3
- name: Install CUDA (Windows)
if: ${{ runner.os == 'Windows' && env.CUDA != '' }}
shell: powershell
env:
cuda: ${{ env.CUDA }}
visual_studio: ${{ env.HOSTCXX }}
run: .github\scripts\install_cuda_windows.ps1
- name: Add custom problem matchers for annotations
run: echo "::add-matcher::.github/problem-matchers.json"
- name: Configure cmake
run: >
cmake . -B "${{ env.BUILD_DIR }}"
-G "${{ env.HOSTCXX }}" -A x64
-Werror=dev
-DCMAKE_WARN_DEPRECATED="OFF"
-DFLAMEGPU_WARNINGS_AS_ERRORS="ON"
-DCMAKE_CUDA_ARCHITECTURES="${{ env.CUDA_ARCH }}"
- name: Build
working-directory: ${{ env.BUILD_DIR }}
run: cmake --build . --config ${{ env.CONFIG }} --target ALL_BUILD --verbose -j `nproc`