Merge pull request #1402 from microsoft/main #440
This file contains hidden or 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: Build all driver samples | |
| on: | |
| # Allows the workflow to be triggered manually from the Actions tab ("Run workflow"). | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| paths-ignore: | |
| - '**.md' | |
| - 'LICENSE' | |
| schedule: | |
| # Runs every Saturday at 00:00 PST (08:00 UTC) | |
| - cron: '0 8 * * 6' | |
| 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@v4 | |
| - 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@v4 | |
| with: | |
| submodules: 'recursive' | |
| - name: Install Nuget Packages | |
| run: nuget restore .\packages.config -PackagesDirectory .\packages\ | |
| - name: Retrieve and build all available solutions | |
| run: .\Build-Samples.ps1 -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@v4 | |
| 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@v4 | |
| - name: Retrieve overview reports | |
| uses: actions/download-artifact@v4 | |
| 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@v4 | |
| with: | |
| name: logs | |
| path: _logs/_overview.all.* |