From a6c0375f85d7eb89aeb49b042e52d0f4c6afdd07 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 16:45:10 -0600 Subject: [PATCH 01/20] Add pre-merge workflow for HLSL testing This adds a workflow for running HLSL tests on PRs that modify HLSL and DirectX code. --- .github/workflows/hlsl-macos.yaml | 26 ++++ .github/workflows/hlsl/hlsl-all.yaml | 177 +++++++++++++++++++++++++++ 2 files changed, 203 insertions(+) create mode 100644 .github/workflows/hlsl-macos.yaml create mode 100644 .github/workflows/hlsl/hlsl-all.yaml diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml new file mode 100644 index 0000000000000..f63888a8b9bef --- /dev/null +++ b/.github/workflows/hlsl-macos.yaml @@ -0,0 +1,26 @@ +name: HLSL Tests - macOS + +permissions: + contents: read + checks: write + +on: + workflow_dispatch: + pull_request: + branches: + - main + paths: + - 'llvm/**/DirectX/**' + - '.github/workflows/hlsl*' + - clang/*HLSL*/**/* + - clang/**/*HLSL* + - llvm/**/Frontend/HLSL/**/* + +jobs: + macOS-Metal-Clang: + uses: ./.github/workflows/hlsl/hlsl-all.yaml + with: + OS: macOS + SKU: hlsl-metal + TestTarget: check-hlsl-clang-mtl + LLVM-branch: ${{ github.ref }} diff --git a/.github/workflows/hlsl/hlsl-all.yaml b/.github/workflows/hlsl/hlsl-all.yaml new file mode 100644 index 0000000000000..6195891a4ec0e --- /dev/null +++ b/.github/workflows/hlsl/hlsl-all.yaml @@ -0,0 +1,177 @@ +name: HLSL Test + +permissions: + contents: read + checks: write + +on: + workflow_dispatch: + inputs: + LLVM-Ref: + description: 'Test Suite Branch' + required: false + default: 'main' + type: string + LLVM-branch: + description: 'LLVM Branch' + required: false + default: 'main' + type: string + LLVM-fork: + description: 'LLVM fork' + required: false + default: 'llvm' + type: string + DXC-branch: + description: 'DXC Branch' + required: false + default: 'main' + type: string + BuildType: + description: 'Build Type' + required: false + default: 'Release' + type: choice + options: + - Release + - RelWithDebInfo + - Debug + TestTarget: + required: false + default: 'check-hlsl' + type: string + Test-Clang: + required: true + type: choice + options: + - On + - Off + OS: + required: true + type: choice + options: + - macOS + - windows + SKU: + required: true + type: choice + options: + - hlsl-metal + LLVM-ExtraCMakeArgs: + description: 'Extra CMake Args for LLVM' + required: false + default: '' + type: string + workflow_call: + inputs: + OffloadTest-branch: + description: 'Test Suite Branch' + required: false + default: 'main' + type: string + LLVM-branch: + description: 'LLVM Branch' + required: false + default: 'main' + type: string + LLVM-fork: + description: 'LLVM For' + required: false + default: 'llvm' + type: string + DXC-branch: + description: 'DXC Branch' + required: false + default: 'main' + type: string + OS: + required: true + type: string + SKU: + required: true + type: string + BuildType: + description: 'DXC Branch' + required: false + default: 'Release' + type: string + Test-Clang: + required: false + default: 'On' + type: string + TestTarget: + required: false + default: 'check-hlsl' + type: string + LLVM-ExtraCMakeArgs: + description: 'Extra CMake Args for LLVM' + required: false + default: '' + type: string + +jobs: + build: + runs-on: [self-hosted, "${{ inputs.SKU }}"] + steps: + - name: Checkout DXC + uses: actions/checkout@v4 + with: + repository: Microsoft/DirectXShaderCompiler + ref: ${{ inputs.DXC-branch }} + path: DXC + fetch-depth: 1 + submodules: true + - name: Checkout LLVM + uses: actions/checkout@v4 + with: + repository: ${{ inputs.LLVM-fork }}/llvm-project + ref: ${{ inputs.LLVM-branch }} + path: llvm-project + fetch-depth: 1 + - name: Checkout OffloadTest + uses: actions/checkout@v4 + with: + repository: llvm-beanz/offload-test-suite + ref: ${{ inputs.OffloadTest-branch }} + path: OffloadTest + fetch-depth: 1 + - name: Checkout Golden Images + uses: actions/checkout@v4 + with: + repository: llvm-beanz/offload-golden-images + ref: main + path: golden-images + fetch-depth: 1 + - name: Setup Windows + if: inputs.OS == 'windows' + uses: llvm/actions/setup-windows@main + with: + arch: amd64 + - name: Build DXC + run: | + cd DXC + mkdir build + cd build + cmake -G Ninja -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -C ${{ github.workspace }}/DXC/cmake/caches/PredefinedParams.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DHLSL_DISABLE_SOURCE_GENERATION=On ${{ github.workspace }}/DXC/ + ninja + - name: Build LLVM + run: | + cd llvm-project + mkdir build + cd build + cmake -G Ninja ${{ inputs.LLVM-ExtraCMakeArgs }} -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -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_TEST_CLANG=${{ inputs.Test-Clang }} -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: | + cd llvm-project + cd build + ninja check-llvm + ninja check-clang + ninja check-hlsl-unit + ninja ${{ inputs.TestTarget }} + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action/macos@v2 + if: always() && inputs.OS == 'macOS' + with: + comment_mode: off + files: llvm-project/build/**/testresults.xunit.xml From b2cee9e26db1f46f0cd55d9e5034c5891003e1e2 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:11:33 -0600 Subject: [PATCH 02/20] Update paths --- .github/workflows/hlsl-macos.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index f63888a8b9bef..83bd853829b22 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -12,6 +12,7 @@ on: paths: - 'llvm/**/DirectX/**' - '.github/workflows/hlsl*' + - '.github/workflows/hlsl/*' - clang/*HLSL*/**/* - clang/**/*HLSL* - llvm/**/Frontend/HLSL/**/* From e7372f7284ae847c5b8a052367f818c6fc9ba391 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:13:20 -0600 Subject: [PATCH 03/20] Trying to get the paths right to trigger --- .github/workflows/hlsl-macos.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index 83bd853829b22..99611618228bd 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -10,15 +10,15 @@ on: branches: - main paths: - - 'llvm/**/DirectX/**' - - '.github/workflows/hlsl*' - - '.github/workflows/hlsl/*' + - llvm/**/DirectX/** + - .github/workflows/hlsl* + - .github/workflows/hlsl/* - clang/*HLSL*/**/* - clang/**/*HLSL* - llvm/**/Frontend/HLSL/**/* jobs: - macOS-Metal-Clang: + HLSL-macOS: uses: ./.github/workflows/hlsl/hlsl-all.yaml with: OS: macOS From 12f924faa20d3ee885653102da11fa66dade011c Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:28:17 -0600 Subject: [PATCH 04/20] Trying again... --- .github/workflows/hlsl-macos.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index 99611618228bd..5defbd569b7d7 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -11,7 +11,7 @@ on: - main paths: - llvm/**/DirectX/** - - .github/workflows/hlsl* + - .github/workflows/hlsl-macos.yaml - .github/workflows/hlsl/* - clang/*HLSL*/**/* - clang/**/*HLSL* From 7c9763aa8ae660a516649f84d700ad0c7b677db6 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:30:53 -0600 Subject: [PATCH 05/20] Let's try no path filtering I will not push this way! --- .github/workflows/hlsl-macos.yaml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index 5defbd569b7d7..cc1d6345cf513 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -9,13 +9,6 @@ on: pull_request: branches: - main - paths: - - llvm/**/DirectX/** - - .github/workflows/hlsl-macos.yaml - - .github/workflows/hlsl/* - - clang/*HLSL*/**/* - - clang/**/*HLSL* - - llvm/**/Frontend/HLSL/**/* jobs: HLSL-macOS: From 4dd8503d67b7f2db2974e1076a9a542b5b6e39b7 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:32:51 -0600 Subject: [PATCH 06/20] This should actually fix it now .github/workflows/hlsl-test-all.yaml .github/workflows/hlsl-test-all.yaml --- .github/workflows/hlsl-macos.yaml | 8 +++++++- .../workflows/{hlsl/hlsl-all.yaml => hlsl-test-all.yaml} | 0 2 files changed, 7 insertions(+), 1 deletion(-) rename .github/workflows/{hlsl/hlsl-all.yaml => hlsl-test-all.yaml} (100%) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index cc1d6345cf513..364eb14604c2f 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -9,10 +9,16 @@ on: pull_request: branches: - main + paths: + - llvm/**/DirectX/** + - .github/workflows/hlsl* + - clang/*HLSL*/**/* + - clang/**/*HLSL* + - llvm/**/Frontend/HLSL/**/* jobs: HLSL-macOS: - uses: ./.github/workflows/hlsl/hlsl-all.yaml + uses: ./.github/workflows/hlsl-all.yaml with: OS: macOS SKU: hlsl-metal diff --git a/.github/workflows/hlsl/hlsl-all.yaml b/.github/workflows/hlsl-test-all.yaml similarity index 100% rename from .github/workflows/hlsl/hlsl-all.yaml rename to .github/workflows/hlsl-test-all.yaml From 22fa02c228abb5b69726288b51d36aa73c50f020 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:34:09 -0600 Subject: [PATCH 07/20] Gah!! --- .github/workflows/hlsl-macos.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index 364eb14604c2f..e4b07d82aaed8 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -18,7 +18,7 @@ on: jobs: HLSL-macOS: - uses: ./.github/workflows/hlsl-all.yaml + uses: ./.github/workflows/hlsl-test-all.yaml with: OS: macOS SKU: hlsl-metal From 7c9f41f7700a7e6d3fff9ade6a129b5d9aed6791 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 17:39:02 -0600 Subject: [PATCH 08/20] Fix job label --- .github/workflows/hlsl-macos.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index e4b07d82aaed8..144bb8e4998fb 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -21,6 +21,6 @@ jobs: uses: ./.github/workflows/hlsl-test-all.yaml with: OS: macOS - SKU: hlsl-metal + SKU: hlsl-macos TestTarget: check-hlsl-clang-mtl LLVM-branch: ${{ github.ref }} From a8b3089060872a39908e3a29a191af268bc643aa Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 18:00:06 -0600 Subject: [PATCH 09/20] Actually enable dxil-dis tests --- .github/workflows/hlsl-test-all.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index 6195891a4ec0e..ac6512c426068 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -75,7 +75,7 @@ on: default: 'main' type: string LLVM-fork: - description: 'LLVM For' + description: 'LLVM Fork' required: false default: 'llvm' type: string @@ -91,7 +91,7 @@ on: required: true type: string BuildType: - description: 'DXC Branch' + description: 'Build Type' required: false default: 'Release' type: string @@ -159,7 +159,7 @@ jobs: cd llvm-project mkdir build cd build - cmake -G Ninja ${{ inputs.LLVM-ExtraCMakeArgs }} -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -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_TEST_CLANG=${{ inputs.Test-Clang }} -DGOLDENIMAGE_DIR=${{ github.workspace }}/golden-images ${{ github.workspace }}/llvm-project/llvm/ + cmake -G Ninja ${{ inputs.LLVM-ExtraCMakeArgs }} -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -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_TEST_CLANG=${{ inputs.Test-Clang }} -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: | From c8fce72a4e7f328fa9d6fe86594509b0b9a4e37e Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 18:19:12 -0600 Subject: [PATCH 10/20] Workflow cleanup based on feedback from @tstellar --- .github/workflows/hlsl-macos.yaml | 2 -- .github/workflows/hlsl-test-all.yaml | 25 +++---------------------- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index 144bb8e4998fb..457f714cf3220 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -2,7 +2,6 @@ name: HLSL Tests - macOS permissions: contents: read - checks: write on: workflow_dispatch: @@ -20,7 +19,6 @@ jobs: HLSL-macOS: uses: ./.github/workflows/hlsl-test-all.yaml with: - OS: macOS SKU: hlsl-macos TestTarget: check-hlsl-clang-mtl LLVM-branch: ${{ github.ref }} diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index ac6512c426068..c5ca4a59fa332 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -17,11 +17,6 @@ on: required: false default: 'main' type: string - LLVM-fork: - description: 'LLVM fork' - required: false - default: 'llvm' - type: string DXC-branch: description: 'DXC Branch' required: false @@ -46,12 +41,6 @@ on: options: - On - Off - OS: - required: true - type: choice - options: - - macOS - - windows SKU: required: true type: choice @@ -74,19 +63,11 @@ on: required: false default: 'main' type: string - LLVM-fork: - description: 'LLVM Fork' - required: false - default: 'llvm' - type: string DXC-branch: description: 'DXC Branch' required: false default: 'main' type: string - OS: - required: true - type: string SKU: required: true type: string @@ -124,7 +105,7 @@ jobs: - name: Checkout LLVM uses: actions/checkout@v4 with: - repository: ${{ inputs.LLVM-fork }}/llvm-project + repository: llvm/llvm-project ref: ${{ inputs.LLVM-branch }} path: llvm-project fetch-depth: 1 @@ -143,7 +124,7 @@ jobs: path: golden-images fetch-depth: 1 - name: Setup Windows - if: inputs.OS == 'windows' + if: runner.os == 'windows' uses: llvm/actions/setup-windows@main with: arch: amd64 @@ -171,7 +152,7 @@ jobs: ninja ${{ inputs.TestTarget }} - name: Publish Test Results uses: EnricoMi/publish-unit-test-result-action/macos@v2 - if: always() && inputs.OS == 'macOS' + if: always() && runner.os == 'macOS' with: comment_mode: off files: llvm-project/build/**/testresults.xunit.xml From 18a274fc64922e00d1cdb5f631649024f35bddcb Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 18:20:21 -0600 Subject: [PATCH 11/20] Fix permissions --- .github/workflows/hlsl-test-all.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index c5ca4a59fa332..4f6335d37b697 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -2,7 +2,6 @@ name: HLSL Test permissions: contents: read - checks: write on: workflow_dispatch: From 8d155e197946019952d235cbbc6353ededd46442 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 18:46:01 -0600 Subject: [PATCH 12/20] Make sure dxil-dis builds --- .github/workflows/hlsl-test-all.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index 4f6335d37b697..734fbcbb966b8 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -133,7 +133,7 @@ jobs: mkdir build cd build cmake -G Ninja -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -C ${{ github.workspace }}/DXC/cmake/caches/PredefinedParams.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DHLSL_DISABLE_SOURCE_GENERATION=On ${{ github.workspace }}/DXC/ - ninja + ninja dxv llvm-dis - name: Build LLVM run: | cd llvm-project From 9969eea38affe2b31ad5d652a4a957e50aebadec Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 18:49:45 -0600 Subject: [PATCH 13/20] Fix Windows capitalization --- .github/workflows/hlsl-test-all.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index 734fbcbb966b8..613ef79e6a9c5 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -123,7 +123,7 @@ jobs: path: golden-images fetch-depth: 1 - name: Setup Windows - if: runner.os == 'windows' + if: runner.os == 'Windows' uses: llvm/actions/setup-windows@main with: arch: amd64 From b0bbdff72d0abc549e9cee33c924ec1574204695 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 8 Jan 2025 21:20:40 -0600 Subject: [PATCH 14/20] Remove fetch-depth 1 since that is the default --- .github/workflows/hlsl-test-all.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index 613ef79e6a9c5..649ee4923673c 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -99,7 +99,6 @@ jobs: repository: Microsoft/DirectXShaderCompiler ref: ${{ inputs.DXC-branch }} path: DXC - fetch-depth: 1 submodules: true - name: Checkout LLVM uses: actions/checkout@v4 @@ -107,21 +106,18 @@ jobs: repository: llvm/llvm-project ref: ${{ inputs.LLVM-branch }} path: llvm-project - fetch-depth: 1 - name: Checkout OffloadTest uses: actions/checkout@v4 with: repository: llvm-beanz/offload-test-suite ref: ${{ inputs.OffloadTest-branch }} path: OffloadTest - fetch-depth: 1 - name: Checkout Golden Images uses: actions/checkout@v4 with: repository: llvm-beanz/offload-golden-images ref: main path: golden-images - fetch-depth: 1 - name: Setup Windows if: runner.os == 'Windows' uses: llvm/actions/setup-windows@main From f165e316516e52184f13a55fb8a3f8b4cf3a5464 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 9 Jan 2025 10:39:57 -0600 Subject: [PATCH 15/20] Updates based on review feedback. --- .github/workflows/hlsl-macos.yaml | 16 ++++-- .github/workflows/hlsl-test-all.yaml | 86 ++++------------------------ 2 files changed, 21 insertions(+), 81 deletions(-) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-macos.yaml index 457f714cf3220..7d535856eaa30 100644 --- a/.github/workflows/hlsl-macos.yaml +++ b/.github/workflows/hlsl-macos.yaml @@ -1,4 +1,4 @@ -name: HLSL Tests - macOS +name: HLSL Tests permissions: contents: read @@ -16,9 +16,15 @@ on: - llvm/**/Frontend/HLSL/**/* jobs: - HLSL-macOS: - uses: ./.github/workflows/hlsl-test-all.yaml + HLSL-Tests: + strategy: + fail-fast: false + matrix: + runs-on: + - hlsl-macos + + uses: ./.github/workflows/hlsl-test-all.yaml@${{ github.base_ref}} with: SKU: hlsl-macos - TestTarget: check-hlsl-clang-mtl - LLVM-branch: ${{ github.ref }} + TestTarget: check-hlsl-clang-mtl # TODO: This target changes based on SKU + LLVM-ref: ${{ github.ref }} diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index 649ee4923673c..be09db3ab6a52 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -4,52 +4,6 @@ permissions: contents: read on: - workflow_dispatch: - inputs: - LLVM-Ref: - description: 'Test Suite Branch' - required: false - default: 'main' - type: string - LLVM-branch: - description: 'LLVM Branch' - required: false - default: 'main' - type: string - DXC-branch: - description: 'DXC Branch' - required: false - default: 'main' - type: string - BuildType: - description: 'Build Type' - required: false - default: 'Release' - type: choice - options: - - Release - - RelWithDebInfo - - Debug - TestTarget: - required: false - default: 'check-hlsl' - type: string - Test-Clang: - required: true - type: choice - options: - - On - - Off - SKU: - required: true - type: choice - options: - - hlsl-metal - LLVM-ExtraCMakeArgs: - description: 'Extra CMake Args for LLVM' - required: false - default: '' - type: string workflow_call: inputs: OffloadTest-branch: @@ -57,63 +11,43 @@ on: required: false default: 'main' type: string - LLVM-branch: + LLVM-ref: description: 'LLVM Branch' required: false default: 'main' type: string - DXC-branch: - description: 'DXC Branch' - required: false - default: 'main' - type: string SKU: required: true type: string - BuildType: - description: 'Build Type' - required: false - default: 'Release' - type: string - Test-Clang: - required: false - default: 'On' - type: string TestTarget: required: false default: 'check-hlsl' type: string - LLVM-ExtraCMakeArgs: - description: 'Extra CMake Args for LLVM' - required: false - default: '' - type: string jobs: build: runs-on: [self-hosted, "${{ inputs.SKU }}"] steps: - name: Checkout DXC - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: repository: Microsoft/DirectXShaderCompiler - ref: ${{ inputs.DXC-branch }} + ref: main path: DXC submodules: true - name: Checkout LLVM - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: - repository: llvm/llvm-project ref: ${{ inputs.LLVM-branch }} path: llvm-project - name: Checkout OffloadTest - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: repository: llvm-beanz/offload-test-suite - ref: ${{ inputs.OffloadTest-branch }} + ref: main path: OffloadTest - name: Checkout Golden Images - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: repository: llvm-beanz/offload-golden-images ref: main @@ -128,14 +62,14 @@ jobs: cd DXC mkdir build cd build - cmake -G Ninja -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -C ${{ github.workspace }}/DXC/cmake/caches/PredefinedParams.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DHLSL_DISABLE_SOURCE_GENERATION=On ${{ github.workspace }}/DXC/ + cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -C ${{ github.workspace }}/DXC/cmake/caches/PredefinedParams.cmake -C ${{ github.workspace }}/OffloadTest/cmake/caches/sccache.cmake -DHLSL_DISABLE_SOURCE_GENERATION=On ${{ github.workspace }}/DXC/ ninja dxv llvm-dis - name: Build LLVM run: | cd llvm-project mkdir build cd build - cmake -G Ninja ${{ inputs.LLVM-ExtraCMakeArgs }} -DDXIL_DIS=${{ github.workspace }}/DXC/build/bin/llvm-dis -DLLVM_INCLUDE_DXIL_TESTS=On -DCMAKE_BUILD_TYPE=${{ inputs.BuildType }} -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_TEST_CLANG=${{ inputs.Test-Clang }} -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" -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: | @@ -146,7 +80,7 @@ jobs: ninja check-hlsl-unit ninja ${{ inputs.TestTarget }} - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action/macos@v2 + uses: EnricoMi/publish-unit-test-result-action/macos@170bf24d20d201b842d7a52403b73ed297e6645b # v2 if: always() && runner.os == 'macOS' with: comment_mode: off From bd85a5eb71fab8beda4990cc9b0e7c6ee6d20ea8 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 9 Jan 2025 10:42:07 -0600 Subject: [PATCH 16/20] Rename hlsl workflow --- .github/workflows/{hlsl-macos.yaml => hlsl-matrix.yaml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{hlsl-macos.yaml => hlsl-matrix.yaml} (100%) diff --git a/.github/workflows/hlsl-macos.yaml b/.github/workflows/hlsl-matrix.yaml similarity index 100% rename from .github/workflows/hlsl-macos.yaml rename to .github/workflows/hlsl-matrix.yaml From ce1b8b0b497c9fbb970c00da6d34e060c93ead15 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 9 Jan 2025 10:43:49 -0600 Subject: [PATCH 17/20] Need to phase this for testing --- .github/workflows/hlsl-matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml index 7d535856eaa30..c63a32acd2b3e 100644 --- a/.github/workflows/hlsl-matrix.yaml +++ b/.github/workflows/hlsl-matrix.yaml @@ -23,7 +23,7 @@ jobs: runs-on: - hlsl-macos - uses: ./.github/workflows/hlsl-test-all.yaml@${{ github.base_ref}} + uses: ./.github/workflows/hlsl-test-all.yaml with: SKU: hlsl-macos TestTarget: check-hlsl-clang-mtl # TODO: This target changes based on SKU From 583f46695da3d79122352493dab42b216b3e9be1 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 9 Jan 2025 13:09:08 -0600 Subject: [PATCH 18/20] Try grabbing workflow from the target ref --- .github/workflows/hlsl-matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml index c63a32acd2b3e..3e608d1b6ed1a 100644 --- a/.github/workflows/hlsl-matrix.yaml +++ b/.github/workflows/hlsl-matrix.yaml @@ -23,7 +23,7 @@ jobs: runs-on: - hlsl-macos - uses: ./.github/workflows/hlsl-test-all.yaml + uses: llvm/llvm-project/.github/workflows/hlsl-test-all.yaml@${{ github.base_ref}} with: SKU: hlsl-macos TestTarget: check-hlsl-clang-mtl # TODO: This target changes based on SKU From d85eb9255731bf62724a5f4c98000b1dfd973be4 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 9 Jan 2025 13:33:10 -0600 Subject: [PATCH 19/20] Removing ref addressing for the sub-workflow since it doesn't work --- .github/workflows/hlsl-matrix.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-matrix.yaml b/.github/workflows/hlsl-matrix.yaml index 3e608d1b6ed1a..c63a32acd2b3e 100644 --- a/.github/workflows/hlsl-matrix.yaml +++ b/.github/workflows/hlsl-matrix.yaml @@ -23,7 +23,7 @@ jobs: runs-on: - hlsl-macos - uses: llvm/llvm-project/.github/workflows/hlsl-test-all.yaml@${{ github.base_ref}} + uses: ./.github/workflows/hlsl-test-all.yaml with: SKU: hlsl-macos TestTarget: check-hlsl-clang-mtl # TODO: This target changes based on SKU From 035b1d8e169ba044e98b15833f817cce0be78d84 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Thu, 9 Jan 2025 13:33:37 -0600 Subject: [PATCH 20/20] Removing self-hosted label --- .github/workflows/hlsl-test-all.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hlsl-test-all.yaml b/.github/workflows/hlsl-test-all.yaml index be09db3ab6a52..93a1c6d2662d4 100644 --- a/.github/workflows/hlsl-test-all.yaml +++ b/.github/workflows/hlsl-test-all.yaml @@ -26,7 +26,7 @@ on: jobs: build: - runs-on: [self-hosted, "${{ inputs.SKU }}"] + runs-on: ${{ inputs.SKU }} steps: - name: Checkout DXC uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1