summaryrefslogtreecommitdiff
path: root/.github/workflows/hlsl-test-all.yaml
blob: 6e5bfd5b870a357f4866f74a68cb40ca400900af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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