Skip to content

Pin GitHub Actions to full-length commit SHAs #825

Pin GitHub Actions to full-length commit SHAs

Pin GitHub Actions to full-length commit SHAs #825

Workflow file for this run

name: Build changes to driver samples
on:
pull_request:
branches:
- main
- develop
paths-ignore:
- '**.md'
- 'LICENSE'
jobs:
# Auto-discover the available _NT_TARGET_VERSION values from the active WDK so the build
# matrix never needs a hand-maintained version list. Change -Newest to build more/fewer.
discover:
name: discover _NT_TARGET_VERSIONs
runs-on: windows-2025-vs2026
outputs:
versions: ${{ steps.nt.outputs.versions }}
steps:
- name: Check out repository code
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- name: Install Nuget Packages
run: nuget restore .\packages.config -PackagesDirectory .\packages\
- name: Discover the newest _NT_TARGET_VERSION values
id: nt
shell: pwsh
run: |
$json = .\Get-NtTargetVersions.ps1 -Newest 4 -AsMatrixJson
"versions=$json" | Out-File -FilePath $env:GITHUB_OUTPUT -Append -Encoding utf8
Write-Host "Discovered _NT_TARGET_VERSION matrix: $json"
build:
name: build ${{ matrix.nt.tag }} ${{ matrix.configuration }} ${{ matrix.platform }}
needs: discover
strategy:
fail-fast: false
matrix:
configuration: [Debug, Release]
platform: [x64, arm64]
# _NT_TARGET_VERSION values are auto-discovered by the 'discover' job from the active
# WDK, so there is no version list to maintain here.
nt: ${{ fromJSON(needs.discover.outputs.versions) }}
runs-on: windows-2025-vs2026
steps:
- name: Check out repository code
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
submodules: 'recursive'
- name: Install Nuget Packages
run: nuget restore .\packages.config -PackagesDirectory .\packages\
- name: Get changed files
id: get-changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
with:
separator: ","
- name: Retrieve and build solutions from changed files
run: |
$changedFiles = "${{ steps.get-changed-files.outputs.all_changed_files }}".Split(',')
.\.github\scripts\Build-ChangedSamples.ps1 -ChangedFiles $changedFiles -Verbose
env:
WDS_Configuration: ${{ matrix.configuration }}
WDS_Platform: ${{ matrix.platform }}
WDS_NtTargetVersion: ${{ matrix.nt.version }}
WDS_ReportFileName: _overview.${{ matrix.nt.tag }}.${{ matrix.configuration }}.${{ matrix.platform }}
- name: Archive build logs and overview build reports
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: always()
with:
name: logs-${{ matrix.nt.tag }}-${{ matrix.configuration }}-${{ matrix.platform }}
path: _logs
report:
name: Generate global report
runs-on: windows-2022
needs: build
if: always()
steps:
- name: Check out repository code
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
- name: Retrieve overview reports
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
path: _logs
pattern: logs-*
merge-multiple: true
- name: Join and generate global reports
run: .\.github\scripts\Join-CsvReports.ps1
- name: Archive global overview build reports
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: logs
path: _logs/_overview.all.*