Skip to content

U/sgriffin/vc2026

U/sgriffin/vc2026 #327

Workflow file for this run

# Continuous integration
name: github-continuous-integration
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
permissions:
contents: read
jobs:
build:
# Use VS 2026 preview runner (GA May 4, 2026, then switch to windows-2025)
runs-on: windows-2025-vs2026
permissions:
security-events: write
strategy:
fail-fast: false
matrix:
configuration: [ 'Release', 'Debug', 'Release_Unicode', 'Debug_Unicode' ]
platform: [ 'Win32', 'x64', 'ARM64EC' ]
exclude:
# ARM64EC only needs Unicode builds
- platform: ARM64EC
configuration: Release
- platform: ARM64EC
configuration: Debug
steps:
- name: Harden Runner
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: 'recursive'
- name: Install Windows 11 SDK (10.0.22621.0)
shell: pwsh
run: |
$sdkPath = "${env:ProgramFiles(x86)}\Windows Kits\10\Include\10.0.22621.0"
if (Test-Path $sdkPath) {
Write-Host "Windows SDK 10.0.22621.0 already installed"
exit 0
}
Write-Host "Downloading Windows 11 SDK 10.0.22621.0..."
$installer = "$env:TEMP\winsdksetup.exe"
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?linkid=2196241" -OutFile $installer
Write-Host "Installing SDK (this may take a few minutes)..."
$proc = Start-Process -FilePath $installer -ArgumentList "/features OptionId.DesktopCPPx64 OptionId.DesktopCPPx86 OptionId.DesktopCPParm64 /quiet /norestart /log $env:TEMP\sdk_install.log" -Wait -PassThru
Write-Host "Installer exit code: $($proc.ExitCode)"
if (Test-Path $sdkPath) {
Write-Host "Windows SDK 10.0.22621.0 installed successfully"
} else {
Write-Host "SDK install log:"
Get-Content "$env:TEMP\sdk_install.log" -ErrorAction SilentlyContinue | Select-Object -Last 50
Write-Error "Windows SDK installation failed - path not found: $sdkPath"
exit 1
}
- name: "Build"
shell: pwsh
run: |
$path = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath
& $path\MSBuild\Current\Bin\amd64\msbuild.exe /m /p:Configuration="${{matrix.configuration}}" /p:Platform="${{matrix.platform}}" mapistub.sln
publish-test-results:
name: "Publish Tests Results"
needs: build
runs-on: ubuntu-latest
permissions:
checks: write
# only needed unless run with comment_mode: off
pull-requests: write
security-events: write
if: always()
steps:
- name: Harden Runner
uses: step-security/harden-runner@5ef0c079ce82195b2a36a210272d6b661572d83e # v2.14.2
with:
egress-policy: audit
- name: Download Artifacts
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
path: artifacts
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@27d65e188ec43221b20d26de30f4892fad91df2f # v2.22.0
with:
files: "artifacts/**/*.trx"