name: HLSL Test permissions: contents: read on: workflow_call: inputs: OffloadTest-branch: description: 'Test Suite Branch' required: false default: 'main' type: string LLVM-ref: description: 'LLVM Branch' required: false default: 'main' type: string SKU: required: true type: string TestTarget: required: false default: 'check-hlsl' type: string jobs: build: runs-on: ${{ inputs.SKU }} steps: - name: Checkout DXC uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: Microsoft/DirectXShaderCompiler ref: main path: DXC submodules: true - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: ref: ${{ inputs.LLVM-branch }} path: llvm-project - name: Checkout OffloadTest uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: llvm/offload-test-suite ref: main path: OffloadTest - name: Checkout Golden Images uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: llvm/offload-golden-images ref: main path: golden-images - name: Build DXC run: | cd DXC mkdir build cd build 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 -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: | 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@34d7c956a59aed1bfebf31df77b8de55db9bbaaf # v2.21.0 if: always() && runner.os == 'macOS' with: comment_mode: off files: llvm-project/build/**/testresults.xunit.xml