add rxfilter perf test to CI #2058
Workflow file for this run
This file contains 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: CI | |
on: | |
push: | |
branches: | |
- main | |
- release/* | |
- prerelease/* | |
pull_request: | |
branches: | |
- main | |
- release/* | |
- prerelease/* | |
schedule: | |
- cron: '37 12 * * 2' | |
concurrency: | |
# Cancel any workflow currently in progress for the same PR. | |
# Allow running concurrently with any other commits. | |
group: ci-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
permissions: read-all | |
jobs: | |
build: | |
name: Build | |
permissions: | |
security-events: write # For CodeQL | |
uses: ./.github/workflows/build_matrix.yml | |
resolve_base: | |
name: Resolve base commit reference | |
runs-on: windows-2022 | |
outputs: | |
base_ref: ${{ steps.resolve_base_ref.outputs.base_ref }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
repository: microsoft/xdp-for-windows | |
fetch-depth: 2 | |
- name: Resolve base commit reference | |
id: resolve_base_ref | |
shell: PowerShell | |
# For PR runs, this returns essentially returns "main", or the target branch. | |
# For non-PR runs, this returns the first parent of the current commit. | |
run: | | |
$BaseRef = "${{ github.base_ref }}" | |
if ([string]::IsNullOrEmpty($BaseRef)) { | |
$BaseRef = git log --pretty=%P -n 1 ${{ github.sha }} | |
} | |
if (($BaseRef -split " ").Count -gt 1) { | |
Write-Warning "BaseRef has multiple parents. Choosing first of $BaseRef" | |
$BaseRef = ($BaseRef -split " ")[0] | |
} | |
Write-Output "base_ref=$BaseRef" | |
Add-Content -Encoding UTF8 -Path $env:GITHUB_OUTPUT -Value "base_ref=$BaseRef" | |
build_base: | |
name: Build (Base Ref) | |
needs: resolve_base | |
permissions: | |
security-events: write # For CodeQL (even though it is not enabled) | |
uses: ./.github/workflows/build_matrix.yml | |
with: | |
ref: ${{ needs.resolve_base.outputs.base_ref }} | |
id: "baseref" | |
codeql: false | |
build_allpackage: | |
name: Build AllPackage | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
config: [Release, Debug] | |
permissions: | |
actions: read | |
contents: read | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
repository: microsoft/xdp-for-windows | |
submodules: recursive | |
- name: Download x64 Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.config }}_x64 | |
path: artifacts/bin | |
- name: Download arm64 Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.config }}_arm64 | |
path: artifacts/bin | |
- name: Setup MSBuild.exe | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce | |
- name: Nuget Restore | |
run: msbuild.exe xdp.sln /t:restore /p:RestoreConfigFile=src/nuget.config /p:Configuration=${{ matrix.config }} /p:Platform=x64 | |
- name: Build AllPackage | |
run: msbuild xdp.sln /m /t:onebranch /p:Configuration=${{ matrix.config }} /p:Platform=x64 /p:IsAdmin=true /p:BuildStage=AllPackage /p:NugetPlatforms=x64%2carm64 | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
with: | |
name: bin_allpackage_${{ matrix.config }} | |
path: | | |
artifacts/bin/${{ matrix.config }} | |
!artifacts/bin/**/*.ilk | |
!artifacts/bin/**/*.exp | |
!artifacts/bin/**/*.lastcodeanalysissucceeded | |
onebranch_build_validation: | |
name: OneBranch Build Validation | |
strategy: | |
fail-fast: false | |
matrix: | |
config: [Release, Debug] | |
platform: [x64] | |
permissions: | |
actions: read | |
contents: read | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
repository: microsoft/xdp-for-windows | |
submodules: recursive | |
ref: ${{ inputs.ref }} | |
- name: Setup MSBuild.exe | |
uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce | |
with: | |
msbuild-architecture: x64 | |
- name: Nuget Restore | |
run: msbuild.exe xdp.sln /t:restore /p:RestoreConfigFile=src/nuget.config /p:Configuration=${{ matrix.config }} /p:Platform=${{ matrix.platform }} | |
- name: Build Binary | |
run: msbuild xdp.sln /m /t:onebranch /p:configuration=${{ matrix.config }} /p:platform=${{ matrix.platform }} /p:SignMode=Off /p:IsAdmin=true /p:BuildStage=Binary | |
- name: Build Catalog | |
run: msbuild xdp.sln /m /t:onebranch /p:configuration=${{ matrix.config }} /p:platform=${{ matrix.platform }} /p:SignMode=Off /p:IsAdmin=true /p:BuildStage=Catalog | |
- name: Build Package | |
run: msbuild xdp.sln /m /t:onebranch /p:configuration=${{ matrix.config }} /p:platform=${{ matrix.platform }} /p:SignMode=Off /p:IsAdmin=true /p:BuildStage=Package | |
- name: Build AllPackage | |
run: msbuild xdp.sln /m /t:onebranch /p:configuration=${{ matrix.config }} /p:platform=${{ matrix.platform }} /p:SignMode=Off /p:IsAdmin=true /p:BuildStage=AllPackage | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
with: | |
name: onebranch_bin_${{ matrix.config }}_${{ matrix.platform }} | |
path: | | |
artifacts/bin | |
!artifacts/bin/**/*.ilk | |
!artifacts/bin/**/*.exp | |
!artifacts/bin/**/*.lastcodeanalysissucceeded | |
functional_tests: | |
name: Functional Tests | |
needs: build | |
env: | |
# For 'main' commits | |
fullRuntime: 360 # minutes. Update timeout-minutes with any changes. | |
fullIters: 10 | |
# For PRs | |
prRuntime: 36 # minutes. Update timeout-minutes with any changes. | |
prIters: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [2019, 2022, Prerelease] | |
configuration: [Release, Debug] | |
platform: [x64, arm64] | |
exclude: | |
- windows: 2019 | |
platform: arm64 | |
- windows: 2022 | |
platform: arm64 | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-functional${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-Functional" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: tools | |
- name: Check Drivers | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
- name: Prepare Machine | |
shell: PowerShell | |
run: tools/prepare-machine.ps1 -Platform ${{ matrix.platform }} -ForFunctionalTest -RequireNoReboot -Verbose | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Run Tests (PR) | |
if: ${{ github.event_name == 'pull_request' }} | |
shell: PowerShell | |
timeout-minutes: 36 | |
run: tools/functional.ps1 -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Iterations ${{ env.prIters }} -Timeout ${{ env.fullRuntime }} | |
- name: Run Tests (main) | |
if: ${{ github.event_name != 'pull_request' }} | |
shell: PowerShell | |
timeout-minutes: 360 | |
run: tools/functional.ps1 -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Iterations ${{ env.fullIters }} -Timeout ${{ env.fullRuntime }} | |
- name: Convert Logs | |
if: ${{ always() }} | |
timeout-minutes: 15 | |
shell: PowerShell | |
run: tools/log.ps1 -Convert -Name xdpfunc* -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_func_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
- name: Check Drivers | |
if: ${{ always() }} | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
stress_tests: | |
name: Stress Tests | |
needs: build | |
env: | |
successThresholdPercent: 1 | |
xdpmpPollProvider: 'FNDIS' | |
# For 'main' commits | |
fullRuntime: 60 # minutes. Update timeout-minutes with any changes. | |
# For PRs | |
prRuntime: 10 # minutes. Update timeout-minutes with any changes. | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [2019, 2022, Prerelease] | |
configuration: [Release, Debug] | |
platform: [x64, arm64] | |
exclude: | |
- windows: 2019 | |
platform: arm64 | |
- windows: 2022 | |
platform: arm64 | |
timeout-minutes: 75 # Ideally this would be only 25 min for PR runs, but GitHub Actions don't support that. | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-spinxsk${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-Spinxsk" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: tools | |
- name: Check Drivers | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
- name: Prepare Machine | |
shell: PowerShell | |
run: tools/prepare-machine.ps1 -ForSpinxskTest -Platform ${{ matrix.platform }} -RequireNoReboot -Verbose | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Run spinxsk (PR) | |
if: ${{ github.event_name == 'pull_request' }} | |
shell: PowerShell | |
timeout-minutes: 20 | |
run: tools/spinxsk.ps1 -Verbose -Stats -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Minutes ${{ env.prRuntime }} -XdpmpPollProvider ${{ env.xdpmpPollProvider }} -SuccessThresholdPercent ${{ env.successThresholdPercent }} -EnableEbpf | |
- name: Run spinxsk (main) | |
if: ${{ github.event_name != 'pull_request' }} | |
shell: PowerShell | |
timeout-minutes: 70 | |
run: tools/spinxsk.ps1 -Verbose -Stats -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Minutes ${{ env.fullRuntime }} -XdpmpPollProvider ${{ env.xdpmpPollProvider }} -SuccessThresholdPercent ${{ env.successThresholdPercent }} -EnableEbpf | |
- name: Convert Logs | |
if: ${{ always() }} | |
timeout-minutes: 15 | |
shell: PowerShell | |
run: tools/log.ps1 -Convert -Name spinxsk -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_stress_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
- name: Check Drivers | |
if: ${{ always() }} | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
pktfuzz_tests: | |
name: Fuzz Packet Parsing | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [2022] # ASAN is currently buggy on Prerelease and 2019. | |
configuration: [Release, Debug] | |
platform: [x64] | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-fuzz-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: tools | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Run pktfuzz | |
shell: PowerShell | |
run: tools/pktfuzz.ps1 -Minutes 10 -Workers 8 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_pktfuzz_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
if-no-files-found: ignore | |
perf_tests: | |
name: Perf Tests | |
needs: [build, build_base, resolve_base] | |
env: | |
ITERATIONS: ${{ (github.event_name != 'pull_request') && '8' || '3' }} | |
timeout-minutes: 90 # Ideally this would be only 30 min for PR runs, but GitHub Actions don't support that. | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [2019, 2022, Prerelease] | |
configuration: [Release] | |
platform: [x64, arm64] | |
exclude: | |
- windows: 2019 | |
platform: arm64 | |
- windows: 2022 | |
platform: arm64 | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-perf${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: | | |
.github | |
tools | |
- uses: ./.github/actions/perf | |
with: | |
config: ${{ matrix.configuration }} | |
os: ${{ matrix.windows }} | |
platform: ${{ matrix.platform }} | |
- uses: ./.github/actions/perf | |
with: | |
config: ${{ matrix.configuration }} | |
os: ${{ matrix.windows }} | |
platform: ${{ matrix.platform }} | |
ref: ${{ needs.resolve_base.outputs.base_ref }} | |
id: "baseref" | |
- name: Compare Results | |
shell: PowerShell | |
run: tools\xskperfcompare.ps1 -DataFile1 baseref/artifacts/logs/xskperfsuite.csv -DataFile2 artifacts/logs/xskperfsuite.csv | |
ring_perf_tests: | |
name: Ring Perf Tests | |
needs: [build] | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [Prerelease] | |
configuration: [Release] | |
platform: [x64, arm64] | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-perf${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: | | |
tools | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Run ringperf | |
shell: PowerShell | |
run: tools/ringperf.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_ringperf_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
if-no-files-found: ignore | |
rxfilter_perf_tests: | |
name: RX Filter Perf Tests | |
needs: [build] | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [Prerelease] | |
configuration: [Release] | |
platform: [x64, arm64] | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-perf${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: | | |
tools | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Run rxfilter (drop) | |
shell: PowerShell | |
run: tools/rxfilter.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose -Fndis -QueueCount 4 -Action Drop | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_rxfilter_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
if-no-files-found: ignore | |
downlevel_functional_tests: | |
name: Downlevel Functional Tests | |
needs: build | |
env: | |
Runtime: 25 # minutes. Update timeout-minutes with any changes. | |
Iters: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
downlevel_release: [1.0.2, 1.1.0] | |
windows: [2019, 2022, Prerelease] | |
configuration: [Release] | |
platform: [x64] | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-functional-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}-Functional" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: tools | |
- name: Check Drivers | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
- name: Prepare Machine | |
shell: PowerShell | |
run: tools/prepare-machine.ps1 -ForFunctionalTest -Platform ${{ matrix.platform }} -RequireNoReboot -Verbose | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Download Downlevel Tests | |
shell: PowerShell | |
run: | | |
Invoke-WebRequest -Uri "https://github.com/microsoft/xdp-for-windows/releases/download/v${{ matrix.downlevel_release }}/xdp-tests-${{ matrix.platform }}-${{ matrix.downlevel_release }}.zip" -OutFile "artifacts/downlevel-test.zip" | |
Expand-Archive -Path artifacts/downlevel-test.zip -DestinationPath artifacts/downlevel-test/${{ matrix.platform }} | |
tools/merge-artifacts.ps1 -SourcePath artifacts/downlevel-test/${{ matrix.platform }}/bin/* -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Run Tests | |
shell: PowerShell | |
timeout-minutes: 25 | |
run: tools/functional.ps1 -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Iterations ${{ env.Iters }} -NoPrerelease -Timeout ${{ env.Runtime }} | |
- name: Convert Logs | |
if: ${{ always() }} | |
timeout-minutes: 15 | |
shell: PowerShell | |
run: tools/log.ps1 -Convert -Name xdpfunc* -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_downlevel_${{ matrix.downlevel_release }}_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
- name: Check Drivers | |
if: ${{ always() }} | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
xskfwdkm_test: | |
name: XskFwdKm Test | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
windows: [2019, 2022, Prerelease] | |
configuration: [Release, Debug] | |
platform: [x64, arm64] | |
exclude: | |
- windows: 2019 | |
platform: arm64 | |
- windows: 2022 | |
platform: arm64 | |
runs-on: | |
- self-hosted | |
- "1ES.Pool=xdp-ci-functional${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-gh" | |
- "1ES.ImageOverride=WS${{ matrix.windows }}${{ matrix.platform != 'x64' && format('-{0}', matrix.platform) || '' }}-Functional" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
with: | |
sparse-checkout: tools | |
- name: Check Drivers | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
- name: Prepare Machine | |
shell: PowerShell | |
run: tools/prepare-machine.ps1 -Platform ${{ matrix.platform }} -ForFunctionalTest -RequireNoReboot -Verbose | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Run XskFwdKm | |
shell: PowerShell | |
run: tools/xskfwdkm.ps1 -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Convert Logs | |
if: ${{ always() }} | |
timeout-minutes: 15 | |
shell: PowerShell | |
run: tools/log.ps1 -Convert -Name xskfwdkm -Verbose -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Upload Logs | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
if: ${{ always() }} | |
with: | |
name: logs_xskfwdkm_win${{ matrix.windows }}_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/logs | |
- name: Check Drivers | |
if: ${{ always() }} | |
shell: PowerShell | |
run: tools/check-drivers.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} -Verbose | |
create_artifacts: | |
name: Create Release Artifacts | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
configuration: [Release] | |
platform: [x64, arm64] | |
runs-on: windows-2022 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- name: Download Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 | |
with: | |
name: bin_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: artifacts/bin | |
- name: Create Test Archive | |
shell: PowerShell | |
run: tools/create-test-archive.ps1 -Config ${{ matrix.configuration }} -Platform ${{ matrix.platform }} | |
- name: Upload Release Artifacts | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 | |
with: | |
name: release_artifacts_${{ matrix.configuration }}_${{ matrix.platform }} | |
path: | | |
artifacts/kit/**/*.zip | |
artifacts/testarchive/**/*.zip | |
# netperf: | |
# name: Run Perf | |
# needs: [] | |
# runs-on: windows-latest | |
# steps: | |
# - name: Run NetPerf Workflow | |
# shell: pwsh | |
# run: | | |
# $url = "https://raw.githubusercontent.com/microsoft/netperf/main/run-workflow.ps1" | |
# if ('${{ secrets.NET_PERF_TRIGGER }}' -eq '') { | |
# Write-Host "Not able to run because no secrets are available!" | |
# return | |
# } | |
# iex "& { $(irm $url) } ${{ secrets.NET_PERF_TRIGGER }} xdp ${{ github.sha }} ${{ github.ref }} ${{ github.event.pull_request.number }}" | |
Complete: | |
name: Complete | |
if: always() | |
needs: [build, build_allpackage, onebranch_build_validation, functional_tests, stress_tests, pktfuzz_tests, perf_tests, ring_perf_tests, rxfilter_perf_tests, xskfwdkm_test, downlevel_functional_tests, create_artifacts] | |
runs-on: ubuntu-latest | |
permissions: {} # No need for any permissions. | |
steps: | |
- name: Decide whether the needed jobs succeeded or failed | |
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe | |
with: | |
jobs: ${{ toJSON(needs) }} |