Skip to content

Fix Windows CUDA Plugin EP and CUDA CI azcopy authentication failures#29267

Closed
jiafatom with Copilot wants to merge 19 commits into
mainfrom
copilot/fix-cuda-plugin-ci-failure
Closed

Fix Windows CUDA Plugin EP and CUDA CI azcopy authentication failures#29267
jiafatom with Copilot wants to merge 19 commits into
mainfrom
copilot/fix-cuda-plugin-ci-failure

Conversation

Copilot AI commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes multiple Windows CI jobs that were failing because the AZCOPY_MSI_CLIENT_ID (63b63039-6328-442f-954b-5a64d124e5b4) was configured but not assigned to certain runner pools.

  • Windows CUDA Plugin EP build job (onnxruntime-github-vs2022-latest)

    • Added fallback logic: if azcopy download fails, copy from local CUDA SDK installation.
    • Removed AZCOPY_MSI_CLIENT_ID from the build job env; the pool lacks that user-assigned identity.
    • Staged CUDA runtime files as a dedicated artifact in the build job.
  • Windows CUDA Plugin EP test job (onnxruntime-github-Win2022-GPU-A10)

    • Removed the direct azcopy download of the CUDA SDK.
    • Downloads the staged CUDA runtime artifact from the build job instead.
    • Removed AZCOPY_AUTO_LOGIN_TYPE and AZCOPY_MSI_CLIENT_ID from the test job env.
  • Windows GPU CUDA CI Pipeline build job (windows_cuda.yml, onnxruntime-github-vs2022-latest)

    • Removed AZCOPY_MSI_CLIENT_ID from the build job env; the vs2022-latest pool does not have that user-assigned identity.
    • Kept AZCOPY_AUTO_LOGIN_TYPE: MSI so azcopy uses the system-assigned identity.
    • The test job on Win2022-GPU-A10 retains AZCOPY_MSI_CLIENT_ID as that pool still requires it.
  • Windows GPU Doc Gen CI (windows_gpu_doc_gen.yml)

    • Removed AZCOPY_MSI_CLIENT_ID from the job env for the same reason.

Motivation and Context

Infrastructure drift caused the user-assigned managed identity to become unavailable on certain runner pools (onnxruntime-github-vs2022-latest). Any workflow step using AZCOPY_MSI_CLIENT_ID on those pools fails with ManagedIdentityCredential authentication failed: the requested identity isn't assigned to this resource. The fix removes the hard-coded client ID from affected runner pools, allowing azcopy to fall back to the system-assigned identity, and eliminates the redundant CUDA SDK download from the GPU test runner by reusing a build artifact.

Copilot AI changed the title [WIP] Fix failing GitHub Actions job for CUDA Plugin Windows CI Fix Windows CUDA Plugin EP test job CUDA SDK dependency Jun 25, 2026
Copilot AI requested a review from jiafatom June 25, 2026 22:07
@jiafatom
jiafatom marked this pull request as ready for review June 25, 2026 22:14
@jiafatom
jiafatom requested review from Copilot and tianleiwu June 25, 2026 22:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Windows CUDA Plugin EP CI workflow to remove the Windows GPU test job’s direct CUDA SDK download dependency (which was failing due to azcopy MSI auth), by staging the required CUDA runtime files during the build job and transferring them to the test job via a dedicated artifact.

Changes:

  • Stage CUDA runtime + CUPTI directories in the build job and upload them as a separate artifact.
  • Download the staged CUDA runtime artifact in the test job and update PATH to use it.
  • Remove the test job’s direct azcopy CUDA SDK download step.

Comment thread .github/workflows/windows_cuda_plugin.yml Outdated
Comment thread .github/workflows/windows_cuda_plugin.yml
jiafatom and others added 2 commits June 25, 2026 15:23
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI requested a review from jiafatom June 25, 2026 22:45
Copilot AI changed the title Fix Windows CUDA Plugin EP test job CUDA SDK dependency Fix Windows CUDA Plugin EP and CUDA CI azcopy authentication failures Jun 26, 2026
…ude dir at configure time

Dawn's src/emdawnwebgpu/CMakeLists.txt copies webgpu_glfw.h and
webgpu_enum_class_bitmasks.h into gen/src/emdawnwebgpu/include/webgpu/ via
cmake -E copy. With -j32 parallel builds those copy commands can be
triggered from multiple Makefile targets simultaneously before the
destination directory is created, causing:
  Error copying file "...webgpu_enum_class_bitmasks.h" to "...include/webgpu/..."

The existing dawn_parallel_build_fix.patch adds make_directory inside the
custom command, but it may not be applied when the Dawn source is reused
from a cached runner state (FetchContent skips PATCH_COMMAND when stamps
indicate the source is already populated).

Adding file(MAKE_DIRECTORY ...) at CMake configure time ensures the
directory exists before any build job runs, regardless of patch state.

Fixes wasm_Debug / build-wasm CI failure (Job ID: 83586543400).
@sanaa-hamel-microsoft

sanaa-hamel-microsoft commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Using the system provided CUDA isn't a bad approach, but isn't a fix for azcopy auth issues. If it is expected that the agent image provide the relevant CUDA SDK then we should ditch the download entirely.

Also makes completely unrelated changes.

@jiafatom

Copy link
Copy Markdown
Contributor

Will use #29274

@jiafatom jiafatom closed this Jun 26, 2026
@jiafatom
jiafatom deleted the copilot/fix-cuda-plugin-ci-failure branch June 26, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants