@@ -31,26 +31,39 @@ jobs:
3131 strategy :
3232 fail-fast : false
3333 matrix :
34+ suite : ["API Operation", "API Validation", "Other"]
35+ platform : ["Windows x86_64", "Mac aarch64", "Linux x86_64"]
3436 include :
37+ # When an `include` item matches existing matrix entries, the additional items are
38+ # added only to the matching entries. The two lines above define the matrix, and
39+ # the items below attach the rest of the configuration values that apply to suites
40+ # and platforms.
41+ - suite : API Operation
42+ filter : " ^webgpu:api,operation,"
43+ - suite : API Validation
44+ filter : " ^webgpu:api,validation,"
45+ - suite : Other
46+ filter : " !^webgpu:api,operation,|^webgpu:api,validation,"
47+
3548 # Windows
36- - name : Windows x86_64
49+ - platform : Windows x86_64
3750 os : windows-2022
3851 target : x86_64-pc-windows-msvc
3952 backend : dx12
4053
4154 # Mac
42- - name : Mac aarch64
55+ - platform : Mac aarch64
4356 os : macos-14
4457 target : x86_64-apple-darwin
4558 backend : metal
4659
4760 # Linux
48- - name : Linux x86_64
61+ - platform : Linux x86_64
4962 os : ubuntu-24.04
5063 target : x86_64-unknown-linux-gnu
5164 backend : vulkan
5265
53- name : CTS ${{ matrix.name }}
66+ name : ${{ matrix.suite }} ${{ matrix.platform }}
5467 runs-on : ${{ matrix.os }}
5568
5669 steps :
@@ -103,12 +116,13 @@ jobs:
103116 # Explicitly set the backend to avoid EGL messages in output,
104117 # because these tests check stdout.
105118 - name : Test cts_runner
119+ if : matrix.suite == 'other'
106120 shell : bash
107121 run : DENO_WEBGPU_BACKEND=${{ matrix.backend }} cargo --locked test -p cts_runner
108122
109123 - name : Run CTS
110124 shell : bash
111- run : cargo --locked xtask cts --llvm-cov --backend ${{ matrix.backend }}
125+ run : cargo --locked xtask cts --llvm-cov --backend ${{ matrix.backend }} --filter '${{matrix.filter }}'
112126
113127 - name : Generate coverage report
114128 id : coverage
0 commit comments