[llvm] [HLSL] Run HLSL Tests PR validation on Azure-hosted Windows (PR #226312)

Helena Kotas via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 24 21:04:48 PDT 2026


https://github.com/hekota updated https://github.com/llvm/llvm-project/pull/226312

>From 6dce395910bc4ce492f5356e51c3fe0b0512ef12 Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Thu, 24 Sep 2026 15:14:17 -0700
Subject: [PATCH 1/2] [HLSL] Run PR tests on Windows

Replace the macOS HLSL runner with an Azure-hosted Windows 2022 runner and exercise the Clang WARP D3D12 target. Restore Windows toolchain setup and publish the resulting test reports.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-matrix.yaml   |  6 +++---
 .github/workflows/hlsl-test-all.yaml | 19 +++++++++++++++----
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml
index c63a32acd2b3e0..9abc88ee1b26eb 100644
--- a/.github/workflows/hlsl-matrix.yaml
+++ b/.github/workflows/hlsl-matrix.yaml
@@ -21,10 +21,10 @@ jobs:
       fail-fast: false
       matrix:
         runs-on:
-          - hlsl-macos
+          - windows-2022
 
     uses: ./.github/workflows/hlsl-test-all.yaml
     with:
-      SKU: hlsl-macos
-      TestTarget: check-hlsl-clang-mtl # TODO: This target changes based on SKU
+      SKU: ${{ matrix.runs-on }}
+      TestTarget: check-hlsl-clang-warp-d3d12
       LLVM-ref: ${{ github.ref }}
diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 03605497ab6606..5e5a705399e296 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -28,6 +28,11 @@ jobs:
   build:
     runs-on: ${{ inputs.SKU }}
     steps:
+      - name: Setup Windows
+        if: runner.os == 'Windows'
+        uses: llvm/actions/setup-windows at 89a8cf80982d830faab019237860b344a6390c30 # main
+        with:
+          arch: amd64
       - name: Checkout DXC
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
@@ -40,7 +45,7 @@ jobs:
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
           persist-credentials: false
-          ref: ${{ inputs.LLVM-branch }}
+          ref: ${{ inputs.LLVM-ref }}
           path: llvm-project
       - name: Checkout OffloadTest
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -56,6 +61,12 @@ jobs:
           repository: llvm/offload-golden-images
           ref: main
           path: golden-images
+      - name: Setup Python
+        uses: actions/setup-python at a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
+        with:
+          python-version: '3.x'
+      - name: Install test dependencies
+        run: python -m pip install -r OffloadTest/test/requirements.txt
       - name: Build DXC
         run: |
             cd DXC
@@ -68,7 +79,7 @@ jobs:
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends llvm-test-depends clang-test-depends
       - name: Run HLSL Tests
         run: |
@@ -79,8 +90,8 @@ jobs:
             ninja check-hlsl-unit
             ninja ${{ inputs.TestTarget }}
       - name: Publish Test Results
-        uses: EnricoMi/publish-unit-test-result-action/macos at d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
-        if: always() && runner.os == 'macOS'
+        uses: EnricoMi/publish-unit-test-result-action/windows at d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0
+        if: always() && runner.os == 'Windows'
         continue-on-error: true
         with:
           comment_mode: off

>From e1730bed019fb249f5c2f2f93959c203d17f84f1 Mon Sep 17 00:00:00 2001
From: Helena Kotas <hekotas at microsoft.com>
Date: Thu, 24 Sep 2026 21:04:35 -0700
Subject: [PATCH 2/2] [HLSL] Fix Windows test workflow

Use the Windows llvm-dis executable and let checkout select the event revision instead of accepting an untrusted workflow input.

Co-authored-by: Copilot App <223556219+Copilot at users.noreply.github.com>
---
 .github/workflows/hlsl-matrix.yaml   | 1 -
 .github/workflows/hlsl-test-all.yaml | 8 +-------
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml
index 9abc88ee1b26eb..b3978031afd10b 100644
--- a/.github/workflows/hlsl-matrix.yaml
+++ b/.github/workflows/hlsl-matrix.yaml
@@ -27,4 +27,3 @@ jobs:
     with:
       SKU: ${{ matrix.runs-on }}
       TestTarget: check-hlsl-clang-warp-d3d12
-      LLVM-ref: ${{ github.ref }}
diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml
index 5e5a705399e296..0b1cbd2941d31c 100644
--- a/.github/workflows/hlsl-test-all.yaml
+++ b/.github/workflows/hlsl-test-all.yaml
@@ -11,11 +11,6 @@ on:
         required: false
         default: 'main'
         type: string
-      LLVM-ref:
-        description: 'LLVM Branch'
-        required: false
-        default: 'main'
-        type: string
       SKU:
         required: true
         type: string
@@ -45,7 +40,6 @@ jobs:
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
         with:
           persist-credentials: false
-          ref: ${{ inputs.LLVM-ref }}
           path: llvm-project
       - name: Checkout OffloadTest
         uses: actions/checkout at df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
@@ -79,7 +73,7 @@ jobs:
             cd llvm-project
             mkdir build
             cd build
-            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
+            cmake -G Ninja -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis.exe -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/llvm-project/clang/cmake/caches/HLSL.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DDXC_DIR=${{ github.workspace }}/DXC/build/bin -DLLVM_EXTERNAL_OFFLOADTEST_SOURCE_DIR=${{ github.workspace }}/OffloadTest -DLLVM_EXTERNAL_PROJECTS="OffloadTest" -DLLVM_LIT_ARGS="--xunit-xml-output=testresults.xunit.xml -v" -DOFFLOADTEST_WARP_ONLY=On -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/
             ninja hlsl-test-depends llvm-test-depends clang-test-depends
       - name: Run HLSL Tests
         run: |



More information about the llvm-commits mailing list