[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