Enable D3D12 Agility SDK support for Dawn WebGPU builds #6319
Workflow file for this run
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: ONNX Runtime Windows GPU Doc Gen CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - rel-* | |
| paths: | |
| - '**' | |
| - '!docs/**' | |
| - 'docs/OperatorKernels.md' | |
| - 'docs/ContribOperators.md' | |
| - '!README.md' | |
| - '!CONTRIBUTING.md' | |
| - '!BUILD.md' | |
| - '!js/web/**' | |
| - '!onnxruntime/core/providers/js/**' | |
| pull_request: | |
| branches: | |
| - main | |
| - rel-* | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.sha }} | |
| cancel-in-progress: true | |
| jobs: | |
| detect_changes: | |
| name: Detect relevant changes | |
| runs-on: ubuntu-latest | |
| outputs: | |
| run_documentation_build: ${{ steps.changes.outputs.run_documentation_build }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| submodules: 'none' | |
| - name: Check changed paths | |
| id: changes | |
| shell: bash | |
| env: | |
| BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
| HEAD_SHA: ${{ github.event.pull_request.head.sha }} | |
| GITHUB_EVENT_NAME: ${{ github.event_name }} | |
| run: | | |
| if [[ "$GITHUB_EVENT_NAME" != "pull_request" ]]; then | |
| echo "run_documentation_build=true" >> "$GITHUB_OUTPUT" | |
| exit 0 | |
| fi | |
| run_documentation_build=false | |
| while IFS= read -r path; do | |
| case "$path" in | |
| docs/OperatorKernels.md|docs/ContribOperators.md) | |
| run_documentation_build=true | |
| break | |
| ;; | |
| docs/*|README.md|CONTRIBUTING.md|BUILD.md|js/web/*|onnxruntime/core/providers/js/*) | |
| ;; | |
| *) | |
| run_documentation_build=true | |
| break | |
| ;; | |
| esac | |
| done < <(git diff --name-only "$BASE_SHA" "$HEAD_SHA") | |
| echo "run_documentation_build=$run_documentation_build" >> "$GITHUB_OUTPUT" | |
| kernel_documentation_build: | |
| name: Windows GPU Kernel Documentation Build | |
| needs: detect_changes | |
| if: needs.detect_changes.outputs.run_documentation_build == 'true' | |
| env: | |
| OrtPackageId: Microsoft.ML.OnnxRuntime | |
| DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true | |
| setVcvars: true | |
| ALLOW_RELEASED_ONNX_OPSET_ONLY: '0' | |
| AZCOPY_AUTO_LOGIN_TYPE: MSI | |
| AZCOPY_MSI_CLIENT_ID: d712a4c7-a0cf-4e87-af75-31510eba0a8e | |
| runs-on: [ | |
| "self-hosted", | |
| "1ES.Pool=onnxruntime-github-Win2022-GPU-A10", | |
| "JobId=windows-gpu-doc-gen-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" | |
| ] | |
| timeout-minutes: 300 | |
| steps: | |
| - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 | |
| with: | |
| fetch-depth: 0 | |
| submodules: 'none' | |
| - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 | |
| with: | |
| python-version: '3.12' | |
| architecture: x64 | |
| - name: Locate vcvarsall and Setup Env | |
| uses: ./.github/actions/locate-vcvarsall-and-setup-env | |
| with: | |
| architecture: x64 | |
| - name: Install Visual Studio Spectre-mitigated libs | |
| uses: ./.github/actions/install-vs-spectre-libs | |
| with: | |
| architecture: x64 | |
| - name: Install python modules | |
| run: python -m pip install -r .\tools\ci_build\github\windows\python\requirements.txt | |
| working-directory: ${{ github.workspace }} | |
| shell: cmd | |
| - name: Download CUDA SDK v12.8 | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| azcopy.exe cp --recursive "https://lotusscus.blob.core.windows.net/models/cuda_sdk/v12.8" . | |
| dir | |
| shell: pwsh | |
| - name: Add CUDA to PATH | |
| shell: powershell | |
| run: | | |
| Write-Host "Adding CUDA to PATH" | |
| Write-Host "CUDA Path: $env:RUNNER_TEMP\v12.8\bin" | |
| Add-Content -Path $env:GITHUB_PATH -Value "$env:RUNNER_TEMP\v12.8\bin" | |
| Add-Content -Path $env:GITHUB_PATH -Value "$env:RUNNER_TEMP\v12.8\extras\CUPTI\lib64" | |
| - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 | |
| with: | |
| node-version: '20.x' | |
| - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| architecture: x64 | |
| - name: API Documentation Check and generate | |
| run: | | |
| set ORT_DOXY_SRC=${{ github.workspace }} | |
| set ORT_DOXY_OUT=${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo | |
| mkdir %ORT_DOXY_SRC% | |
| mkdir %ORT_DOXY_OUT% | |
| "C:\Program Files\doxygen\bin\doxygen.exe" ${{ github.workspace }}\tools\ci_build\github\Doxyfile_csharp.cfg | |
| working-directory: ${{ github.workspace }} | |
| shell: cmd | |
| - uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5.4.0 | |
| env: | |
| PROCESSOR_ARCHITECTURE: x64 | |
| with: | |
| dotnet-version: '8.x' | |
| - name: Use Nuget 6.x | |
| uses: nuget/setup-nuget@d105a947828025cd7a980103c35ba2bfae586d0f # v2.0.2 | |
| with: | |
| nuget-version: '6.x' | |
| - name: NuGet restore | |
| run: nuget restore ${{ github.workspace }}\packages.config -ConfigFile ${{ github.workspace }}\NuGet.config -PackagesDirectory ${{ runner.temp }}\build\RelWithDebInfo | |
| shell: cmd | |
| - name: Set OnnxRuntimeBuildDirectory | |
| shell: pwsh | |
| run: | | |
| $buildDir = Join-Path ${{ runner.temp }} "build" | |
| echo "OnnxRuntimeBuildDirectory=$buildDir" >> $env:GITHUB_ENV | |
| - name: Build | |
| working-directory: ${{ runner.temp }} | |
| run: | | |
| python.exe ${{ github.workspace }}\tools\ci_build\build.py --config RelWithDebInfo --build_dir build --skip_submodule_sync --build_csharp --parallel --use_binskim_compliant_compile_flags --cmake_generator "Visual Studio 17 2022" --build_shared_lib --update --build --gen_doc validate --skip_tests --build_wheel --use_dml --use_cuda --cuda_home="$env:RUNNER_TEMP\v12.8" --cmake_extra_defines CMAKE_CUDA_ARCHITECTURES=86 --cmake_extra_defines onnxruntime_BUILD_UNIT_TESTS=OFF | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| Remove-Item "${{ runner.temp }}\build\RelWithDebInfo" -Include "*.obj" -Recurse | |
| shell: pwsh | |
| - name: Validate C# native delegates | |
| run: python tools\ValidateNativeDelegateAttributes.py | |
| working-directory: ${{ github.workspace }}\csharp | |
| shell: cmd | |
| - name: Install ONNX Runtime Wheel | |
| uses: ./.github/actions/install-onnxruntime-wheel | |
| with: | |
| whl-directory: ${{ runner.temp }}\build\RelWithDebInfo\RelWithDebInfo\dist | |
| - name: Generate and validate documentation | |
| working-directory: ${{ runner.temp }}\build | |
| run: | | |
| python.exe ${{ github.workspace }}\tools\ci_build\build.py --config RelWithDebInfo --build_dir ${{ runner.temp }}\build --gen_doc validate | |
| if ($lastExitCode -ne 0) { | |
| exit $lastExitCode | |
| } | |
| shell: pwsh | |
| - name: Upload updated documentation | |
| if: failure() | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: updated-docs | |
| path: | | |
| ${{ github.workspace }}/docs/OperatorKernels.md | |
| ${{ github.workspace }}/docs/ContribOperators.md | |
| kernel_documentation: | |
| name: Windows GPU Kernel Documentation Validation | |
| needs: | |
| - detect_changes | |
| - kernel_documentation_build | |
| if: always() | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check documentation build result | |
| env: | |
| DETECT_CHANGES_RESULT: ${{ needs.detect_changes.result }} | |
| RUN_DOCUMENTATION_BUILD: ${{ needs.detect_changes.outputs.run_documentation_build }} | |
| DOCUMENTATION_BUILD_RESULT: ${{ needs.kernel_documentation_build.result }} | |
| shell: bash | |
| run: | | |
| if [[ "$DETECT_CHANGES_RESULT" != "success" ]]; then | |
| echo "::error::Failed to determine whether the documentation build is required." | |
| exit 1 | |
| fi | |
| if [[ "$RUN_DOCUMENTATION_BUILD" != "true" && "$RUN_DOCUMENTATION_BUILD" != "false" ]]; then | |
| echo "::error::Unexpected path detection result: $RUN_DOCUMENTATION_BUILD" | |
| exit 1 | |
| fi | |
| if [[ "$RUN_DOCUMENTATION_BUILD" == "true" && "$DOCUMENTATION_BUILD_RESULT" != "success" ]]; then | |
| echo "::error::Documentation build result: $DOCUMENTATION_BUILD_RESULT" | |
| exit 1 | |
| fi | |
| if [[ "$RUN_DOCUMENTATION_BUILD" != "true" ]]; then | |
| echo "Documentation build is not required for the changed paths." | |
| fi |