1bf215546Sopenharmony_ci# This file list source dependencies to avoid creating/running jobs
2bf215546Sopenharmony_ci# those outcome cannot be changed by the modifications from a branch.
3bf215546Sopenharmony_ci
4bf215546Sopenharmony_ci# Rule to filter for only scheduled pipelines.
5bf215546Sopenharmony_ci.scheduled_pipeline-rules:
6bf215546Sopenharmony_ci  rules:
7bf215546Sopenharmony_ci    - if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
8bf215546Sopenharmony_ci      when: on_success
9bf215546Sopenharmony_ci
10bf215546Sopenharmony_ci# Generic rule to not run the job during scheduled pipelines. Jobs that aren't
11bf215546Sopenharmony_ci# something like a nightly run should include this rule.
12bf215546Sopenharmony_ci.no_scheduled_pipelines-rules:
13bf215546Sopenharmony_ci  rules:
14bf215546Sopenharmony_ci    - if: *is-scheduled-pipeline
15bf215546Sopenharmony_ci      when: never
16bf215546Sopenharmony_ci
17bf215546Sopenharmony_ci# Mesa core source file dependencies that may impact any test job
18bf215546Sopenharmony_ci# ---------------------------------------------------------------
19bf215546Sopenharmony_ci.core-rules:
20bf215546Sopenharmony_ci  rules:
21bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
22bf215546Sopenharmony_ci    - changes: &core_file_list
23bf215546Sopenharmony_ci      - .gitlab-ci.yml
24bf215546Sopenharmony_ci      - .gitlab-ci/**/*
25bf215546Sopenharmony_ci      - include/**/*
26bf215546Sopenharmony_ci      - meson.build
27bf215546Sopenharmony_ci      - .gitattributes
28bf215546Sopenharmony_ci      - src/*
29bf215546Sopenharmony_ci      - src/compiler/**/*
30bf215546Sopenharmony_ci      - src/drm-shim/**/*
31bf215546Sopenharmony_ci      - src/gbm/**/*
32bf215546Sopenharmony_ci      - src/gtest/**/*
33bf215546Sopenharmony_ci      - src/hgl/**/*
34bf215546Sopenharmony_ci      - src/include/**/*
35bf215546Sopenharmony_ci      # Some src/util and src/compiler files use headers from mesa/ (e.g.
36bf215546Sopenharmony_ci      # mtypes.h).  We should clean that up.
37bf215546Sopenharmony_ci      - src/mesa/**/*.h
38bf215546Sopenharmony_ci      - src/tool/**/*
39bf215546Sopenharmony_ci      - src/util/**/*
40bf215546Sopenharmony_ci      when: on_success
41bf215546Sopenharmony_ci
42bf215546Sopenharmony_ci# Mesa source file dependencies that may impact any GL driver test job.
43bf215546Sopenharmony_ci.gl-rules:
44bf215546Sopenharmony_ci  rules:
45bf215546Sopenharmony_ci    - !reference [.core-rules, rules]
46bf215546Sopenharmony_ci    - changes: &mesa_core_file_list
47bf215546Sopenharmony_ci      - src/egl/**/*
48bf215546Sopenharmony_ci      - src/glx/**/*
49bf215546Sopenharmony_ci      - src/loader/**/*
50bf215546Sopenharmony_ci      - src/mapi/**/*
51bf215546Sopenharmony_ci      - src/mesa/*
52bf215546Sopenharmony_ci      - src/mesa/main/**/*
53bf215546Sopenharmony_ci      - src/mesa/math/**/*
54bf215546Sopenharmony_ci      - src/mesa/program/**/*
55bf215546Sopenharmony_ci      - src/mesa/sparc/**/*
56bf215546Sopenharmony_ci      - src/mesa/state_tracker/**/*
57bf215546Sopenharmony_ci      - src/mesa/swrast/**/*
58bf215546Sopenharmony_ci      - src/mesa/swrast_setup/**/*
59bf215546Sopenharmony_ci      - src/mesa/vbo/**/*
60bf215546Sopenharmony_ci      - src/mesa/x86/**/*
61bf215546Sopenharmony_ci      - src/mesa/x86-64/**/*
62bf215546Sopenharmony_ci      when: on_success
63bf215546Sopenharmony_ci    - changes: &gallium_core_file_list
64bf215546Sopenharmony_ci      - src/gallium/*
65bf215546Sopenharmony_ci      - src/gallium/auxiliary/**/*
66bf215546Sopenharmony_ci      - src/gallium/drivers/*
67bf215546Sopenharmony_ci      - src/gallium/include/**/*
68bf215546Sopenharmony_ci      - src/gallium/frontends/dri/*
69bf215546Sopenharmony_ci      - src/gallium/frontends/glx/**/*
70bf215546Sopenharmony_ci      - src/gallium/targets/**/*
71bf215546Sopenharmony_ci      - src/gallium/tests/**/*
72bf215546Sopenharmony_ci      - src/gallium/winsys/*
73bf215546Sopenharmony_ci      when: on_success
74bf215546Sopenharmony_ci
75bf215546Sopenharmony_ci# Source file dependencies that may impact any Vulkan driver build or test
76bf215546Sopenharmony_ci.vulkan-rules:
77bf215546Sopenharmony_ci  rules:
78bf215546Sopenharmony_ci    - !reference [.core-rules, rules]
79bf215546Sopenharmony_ci    - changes: &vulkan_file_list
80bf215546Sopenharmony_ci      - src/vulkan/**/*
81bf215546Sopenharmony_ci      when: on_success
82bf215546Sopenharmony_ci
83bf215546Sopenharmony_ci.softpipe-rules:
84bf215546Sopenharmony_ci  stage: software-renderer
85bf215546Sopenharmony_ci  rules:
86bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
87bf215546Sopenharmony_ci    - changes: &softpipe_file_list
88bf215546Sopenharmony_ci      - src/gallium/drivers/softpipe/**/*
89bf215546Sopenharmony_ci      - src/gallium/winsys/sw/**/*
90bf215546Sopenharmony_ci      when: on_success
91bf215546Sopenharmony_ci
92bf215546Sopenharmony_ci.llvmpipe-rules:
93bf215546Sopenharmony_ci  stage: software-renderer
94bf215546Sopenharmony_ci  rules:
95bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
96bf215546Sopenharmony_ci    - changes: &llvmpipe_file_list
97bf215546Sopenharmony_ci      - src/gallium/drivers/llvmpipe/**/*
98bf215546Sopenharmony_ci      - src/gallium/winsys/sw/**/*
99bf215546Sopenharmony_ci      when: on_success
100bf215546Sopenharmony_ci
101bf215546Sopenharmony_ci.lavapipe-rules:
102bf215546Sopenharmony_ci  stage: software-renderer
103bf215546Sopenharmony_ci  rules:
104bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
105bf215546Sopenharmony_ci    # One could probably be a little more clever here and skip non-gallium Mesa changes (see also .llvmpipe-cl-rules).
106bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
107bf215546Sopenharmony_ci    - changes: &lavapipe_file_list
108bf215546Sopenharmony_ci      - src/gallium/drivers/llvmpipe/**/*
109bf215546Sopenharmony_ci      - src/gallium/frontends/lavapipe/**/*
110bf215546Sopenharmony_ci      - src/gallium/winsys/sw/**/*
111bf215546Sopenharmony_ci      when: on_success
112bf215546Sopenharmony_ci
113bf215546Sopenharmony_ci.llvmpipe-cl-rules:
114bf215546Sopenharmony_ci  stage: software-renderer
115bf215546Sopenharmony_ci  rules:
116bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
117bf215546Sopenharmony_ci    - changes:
118bf215546Sopenharmony_ci      - .gitlab-ci.yml
119bf215546Sopenharmony_ci      - .gitlab-ci/**/*
120bf215546Sopenharmony_ci      - meson.build
121bf215546Sopenharmony_ci      - .gitattributes
122bf215546Sopenharmony_ci      - include/**/*
123bf215546Sopenharmony_ci      - src/compiler/**/*
124bf215546Sopenharmony_ci      - src/include/**/*
125bf215546Sopenharmony_ci      - src/util/**/*
126bf215546Sopenharmony_ci      when: on_success
127bf215546Sopenharmony_ci    - changes:
128bf215546Sopenharmony_ci        *gallium_core_file_list
129bf215546Sopenharmony_ci      when: on_success
130bf215546Sopenharmony_ci    - changes:
131bf215546Sopenharmony_ci        *llvmpipe_file_list
132bf215546Sopenharmony_ci      when: on_success
133bf215546Sopenharmony_ci    - changes: &clover_file_list
134bf215546Sopenharmony_ci      - src/gallium/frontends/clover/**/*
135bf215546Sopenharmony_ci      when: on_success
136bf215546Sopenharmony_ci
137bf215546Sopenharmony_ci.collabora-farm-rules:
138bf215546Sopenharmony_ci  rules:
139bf215546Sopenharmony_ci    - if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
140bf215546Sopenharmony_ci      when: never
141bf215546Sopenharmony_ci
142bf215546Sopenharmony_ci.igalia-farm-rules:
143bf215546Sopenharmony_ci  rules:
144bf215546Sopenharmony_ci    - if: '$IGALIA_FARM == "offline"'
145bf215546Sopenharmony_ci      when: never
146bf215546Sopenharmony_ci
147bf215546Sopenharmony_ci# Skips freedreno jobs if either of the farms we use are offline.
148bf215546Sopenharmony_ci.freedreno-farm-rules:
149bf215546Sopenharmony_ci  rules:
150bf215546Sopenharmony_ci    - if: '$FD_FARM == "offline"'
151bf215546Sopenharmony_ci      when: never
152bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
153bf215546Sopenharmony_ci
154bf215546Sopenharmony_ci# Rules for changes that impact either freedreno or turnip.
155bf215546Sopenharmony_ci.freedreno-common-rules:
156bf215546Sopenharmony_ci  rules:
157bf215546Sopenharmony_ci    - !reference [.freedreno-farm-rules, rules]
158bf215546Sopenharmony_ci    - changes: &freedreno_core_file_list
159bf215546Sopenharmony_ci      - src/freedreno/ci/**/*
160bf215546Sopenharmony_ci      - src/freedreno/common/**/*
161bf215546Sopenharmony_ci      - src/freedreno/drm/**/*
162bf215546Sopenharmony_ci      - src/freedreno/fdl/**/*
163bf215546Sopenharmony_ci      - src/freedreno/ir3/**/*
164bf215546Sopenharmony_ci      - src/freedreno/isa/**/*
165bf215546Sopenharmony_ci      - src/freedreno/registers/**/*
166bf215546Sopenharmony_ci      when: on_success
167bf215546Sopenharmony_ci
168bf215546Sopenharmony_ci.freedreno-rules:
169bf215546Sopenharmony_ci  stage: freedreno
170bf215546Sopenharmony_ci  rules:
171bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
172bf215546Sopenharmony_ci    - !reference [.freedreno-common-rules, rules]
173bf215546Sopenharmony_ci    - changes: &freedreno_gl_file_list
174bf215546Sopenharmony_ci      - src/freedreno/ir2/**/*
175bf215546Sopenharmony_ci      - src/gallium/drivers/freedreno/**/*
176bf215546Sopenharmony_ci      - src/gallium/winsys/freedreno/**/*
177bf215546Sopenharmony_ci      when: on_success
178bf215546Sopenharmony_ci
179bf215546Sopenharmony_ci.turnip-rules:
180bf215546Sopenharmony_ci  stage: freedreno
181bf215546Sopenharmony_ci  rules:
182bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
183bf215546Sopenharmony_ci    - !reference [.freedreno-common-rules, rules]
184bf215546Sopenharmony_ci    - changes:
185bf215546Sopenharmony_ci      - src/freedreno/vulkan/**/*
186bf215546Sopenharmony_ci      when: on_success
187bf215546Sopenharmony_ci
188bf215546Sopenharmony_ci# For piglit and skqp test jobs that run both GL and VK tests.
189bf215546Sopenharmony_ci.freedreno-turnip-rules:
190bf215546Sopenharmony_ci  rules:
191bf215546Sopenharmony_ci    - !reference [.freedreno-rules, rules]
192bf215546Sopenharmony_ci    - !reference [.turnip-rules, rules]
193bf215546Sopenharmony_ci
194bf215546Sopenharmony_ci.freedreno-rules-restricted:
195bf215546Sopenharmony_ci  stage: freedreno
196bf215546Sopenharmony_ci  rules:
197bf215546Sopenharmony_ci    # If the triggerer has access to the restricted traces and if it is pre-merge
198bf215546Sopenharmony_ci    - if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias)$/") &&
199bf215546Sopenharmony_ci           ($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)'
200bf215546Sopenharmony_ci      when: never
201bf215546Sopenharmony_ci    - !reference [.freedreno-rules, rules]
202bf215546Sopenharmony_ci
203bf215546Sopenharmony_ci# Rules for GL driver performance tracking.  We want them to run as code is
204bf215546Sopenharmony_ci# merged to main, but we don't want them to block marge.  So, they need to have
205bf215546Sopenharmony_ci# only when: never or when: manual, and a separate script maintained by
206bf215546Sopenharmony_ci# Collabora triggers the manual job after merge to main.
207bf215546Sopenharmony_ci.gl-rules-performance:
208bf215546Sopenharmony_ci  rules:
209bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
210bf215546Sopenharmony_ci    # Run only on pre-merge pipelines from Marge
211bf215546Sopenharmony_ci    - if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH'
212bf215546Sopenharmony_ci      when: never
213bf215546Sopenharmony_ci    - changes:
214bf215546Sopenharmony_ci        *mesa_core_file_list
215bf215546Sopenharmony_ci      when: manual
216bf215546Sopenharmony_ci    - changes:
217bf215546Sopenharmony_ci        *gallium_core_file_list
218bf215546Sopenharmony_ci      when: manual
219bf215546Sopenharmony_ci
220bf215546Sopenharmony_ci# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
221bf215546Sopenharmony_ci# rules duplication manually
222bf215546Sopenharmony_ci.freedreno-rules-performance:
223bf215546Sopenharmony_ci  stage: freedreno
224bf215546Sopenharmony_ci  rules:
225bf215546Sopenharmony_ci    - !reference [.freedreno-farm-rules, rules]
226bf215546Sopenharmony_ci    - !reference [.gl-rules-performance, rules]
227bf215546Sopenharmony_ci    - changes:
228bf215546Sopenharmony_ci        *freedreno_core_file_list
229bf215546Sopenharmony_ci      when: manual
230bf215546Sopenharmony_ci    - changes:
231bf215546Sopenharmony_ci        *freedreno_gl_file_list
232bf215546Sopenharmony_ci      when: manual
233bf215546Sopenharmony_ci
234bf215546Sopenharmony_ci.nouveau-rules:
235bf215546Sopenharmony_ci  stage: nouveau
236bf215546Sopenharmony_ci  rules:
237bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
238bf215546Sopenharmony_ci    - changes:
239bf215546Sopenharmony_ci      - src/nouveau/**/*
240bf215546Sopenharmony_ci      - src/gallium/drivers/nouveau/**/*
241bf215546Sopenharmony_ci      - src/gallium/winsys/kmsro/**/*
242bf215546Sopenharmony_ci      - src/gallium/winsys/nouveau/**/*
243bf215546Sopenharmony_ci      when: on_success
244bf215546Sopenharmony_ci
245bf215546Sopenharmony_ci.panfrost-midgard-rules:
246bf215546Sopenharmony_ci  stage: arm
247bf215546Sopenharmony_ci  rules:
248bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
249bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
250bf215546Sopenharmony_ci    - changes: &panfrost_gallium_file_list
251bf215546Sopenharmony_ci      - src/gallium/drivers/panfrost/**/*
252bf215546Sopenharmony_ci      - src/gallium/winsys/panfrost/**/*
253bf215546Sopenharmony_ci      when: on_success
254bf215546Sopenharmony_ci    - changes: &panfrost_common_file_list
255bf215546Sopenharmony_ci      - src/panfrost/ci/*
256bf215546Sopenharmony_ci      - src/panfrost/include/*
257bf215546Sopenharmony_ci      - src/panfrost/lib/*
258bf215546Sopenharmony_ci      - src/panfrost/shared/*
259bf215546Sopenharmony_ci      - src/panfrost/util/*
260bf215546Sopenharmony_ci      when: on_success
261bf215546Sopenharmony_ci    - changes:
262bf215546Sopenharmony_ci      - src/panfrost/midgard/**/*
263bf215546Sopenharmony_ci      when: on_success
264bf215546Sopenharmony_ci
265bf215546Sopenharmony_ci.panfrost-bifrost-rules:
266bf215546Sopenharmony_ci  stage: arm
267bf215546Sopenharmony_ci  rules:
268bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
269bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
270bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
271bf215546Sopenharmony_ci    - changes:
272bf215546Sopenharmony_ci        *panfrost_common_file_list
273bf215546Sopenharmony_ci      when: on_success
274bf215546Sopenharmony_ci    - changes:
275bf215546Sopenharmony_ci        *panfrost_gallium_file_list
276bf215546Sopenharmony_ci      when: on_success
277bf215546Sopenharmony_ci    - changes: &panfrost_vulkan_file_list
278bf215546Sopenharmony_ci      - src/panfrost/vulkan/*
279bf215546Sopenharmony_ci      when: on_success
280bf215546Sopenharmony_ci    - changes:
281bf215546Sopenharmony_ci      - src/panfrost/bifrost/**/*
282bf215546Sopenharmony_ci      when: on_success
283bf215546Sopenharmony_ci
284bf215546Sopenharmony_ci.vc4-rules:
285bf215546Sopenharmony_ci  stage: broadcom
286bf215546Sopenharmony_ci  rules:
287bf215546Sopenharmony_ci    - !reference [.igalia-farm-rules, rules]
288bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
289bf215546Sopenharmony_ci    - changes:
290bf215546Sopenharmony_ci      - src/broadcom/**/*
291bf215546Sopenharmony_ci      - src/gallium/drivers/vc4/**/*
292bf215546Sopenharmony_ci      - src/gallium/winsys/kmsro/**/*
293bf215546Sopenharmony_ci      - src/gallium/winsys/vc4/**/*
294bf215546Sopenharmony_ci      when: on_success
295bf215546Sopenharmony_ci
296bf215546Sopenharmony_ci.v3d-rules:
297bf215546Sopenharmony_ci  stage: broadcom
298bf215546Sopenharmony_ci  rules:
299bf215546Sopenharmony_ci    - !reference [.igalia-farm-rules, rules]
300bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
301bf215546Sopenharmony_ci    - changes:
302bf215546Sopenharmony_ci      - src/broadcom/**/*
303bf215546Sopenharmony_ci      - src/gallium/drivers/v3d/**/*
304bf215546Sopenharmony_ci      - src/gallium/winsys/kmsro/**/*
305bf215546Sopenharmony_ci      - src/gallium/winsys/v3d/**/*
306bf215546Sopenharmony_ci      when: on_success
307bf215546Sopenharmony_ci
308bf215546Sopenharmony_ci.v3dv-rules:
309bf215546Sopenharmony_ci  stage: broadcom
310bf215546Sopenharmony_ci  rules:
311bf215546Sopenharmony_ci    - !reference [.igalia-farm-rules, rules]
312bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
313bf215546Sopenharmony_ci    - changes:
314bf215546Sopenharmony_ci      - src/broadcom/**/*
315bf215546Sopenharmony_ci      when: on_success
316bf215546Sopenharmony_ci
317bf215546Sopenharmony_ci.lima-rules:
318bf215546Sopenharmony_ci  stage: arm
319bf215546Sopenharmony_ci  rules:
320bf215546Sopenharmony_ci    - if: '$LIMA_FARM == "offline"'
321bf215546Sopenharmony_ci      when: never
322bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
323bf215546Sopenharmony_ci    - changes:
324bf215546Sopenharmony_ci      - src/gallium/drivers/lima/**/*
325bf215546Sopenharmony_ci      - src/gallium/winsys/lima/**/*
326bf215546Sopenharmony_ci      - src/lima/**/*
327bf215546Sopenharmony_ci      when: on_success
328bf215546Sopenharmony_ci
329bf215546Sopenharmony_ci.radv-rules:
330bf215546Sopenharmony_ci  stage: amd
331bf215546Sopenharmony_ci  rules:
332bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
333bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
334bf215546Sopenharmony_ci    - changes: &radv_file_list
335bf215546Sopenharmony_ci      - src/amd/**/*
336bf215546Sopenharmony_ci      - src/vulkan/**/*
337bf215546Sopenharmony_ci      when: on_success
338bf215546Sopenharmony_ci
339bf215546Sopenharmony_ci.virgl-rules:
340bf215546Sopenharmony_ci  stage: layered-backends
341bf215546Sopenharmony_ci  rules:
342bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
343bf215546Sopenharmony_ci    - changes:
344bf215546Sopenharmony_ci        *llvmpipe_file_list
345bf215546Sopenharmony_ci      when: on_success
346bf215546Sopenharmony_ci    - changes: &virgl_file_list
347bf215546Sopenharmony_ci      - src/gallium/drivers/virgl/**/*
348bf215546Sopenharmony_ci      - src/gallium/winsys/virgl/**/*
349bf215546Sopenharmony_ci      when: on_success
350bf215546Sopenharmony_ci
351bf215546Sopenharmony_ci# Unfortunately we can't sed the on_success from another rules set, so we have
352bf215546Sopenharmony_ci# to do duplicate the files lists to set the job to manual (see
353bf215546Sopenharmony_ci# .gl-rules-performance)
354bf215546Sopenharmony_ci.virgl-iris-rules-performance:
355bf215546Sopenharmony_ci  stage: layered-backends
356bf215546Sopenharmony_ci  rules:
357bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
358bf215546Sopenharmony_ci    - !reference [.gl-rules-performance, rules]
359bf215546Sopenharmony_ci    - changes:
360bf215546Sopenharmony_ci        *llvmpipe_file_list
361bf215546Sopenharmony_ci      when: manual
362bf215546Sopenharmony_ci    - changes:
363bf215546Sopenharmony_ci        *virgl_file_list
364bf215546Sopenharmony_ci      when: manual
365bf215546Sopenharmony_ci
366bf215546Sopenharmony_ci.radeonsi-rules:
367bf215546Sopenharmony_ci  stage: amd
368bf215546Sopenharmony_ci  rules:
369bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
370bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
371bf215546Sopenharmony_ci    - changes: &radeonsi_file_list
372bf215546Sopenharmony_ci      - src/gallium/drivers/radeonsi/**/*
373bf215546Sopenharmony_ci      - src/gallium/include/winsys/**/*
374bf215546Sopenharmony_ci      - src/gallium/winsys/amdgpu/**/*
375bf215546Sopenharmony_ci      - src/amd/*
376bf215546Sopenharmony_ci      - src/amd/addrlib/**/*
377bf215546Sopenharmony_ci      - src/amd/common/**/*
378bf215546Sopenharmony_ci      - src/amd/llvm/**/*
379bf215546Sopenharmony_ci      - src/amd/registers/**/*
380bf215546Sopenharmony_ci      when: on_success
381bf215546Sopenharmony_ci
382bf215546Sopenharmony_ci.radeonsi-vaapi-rules:
383bf215546Sopenharmony_ci  stage: amd
384bf215546Sopenharmony_ci  rules:
385bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
386bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
387bf215546Sopenharmony_ci    - changes:
388bf215546Sopenharmony_ci        *radeonsi_file_list
389bf215546Sopenharmony_ci      when: on_success
390bf215546Sopenharmony_ci    - changes: &radeon_vcn_file_list
391bf215546Sopenharmony_ci      - src/gallium/frontends/va/**/*
392bf215546Sopenharmony_ci      when: on_success
393bf215546Sopenharmony_ci
394bf215546Sopenharmony_ci.i915g-rules:
395bf215546Sopenharmony_ci  stage: intel
396bf215546Sopenharmony_ci  rules:
397bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
398bf215546Sopenharmony_ci    - changes:
399bf215546Sopenharmony_ci      - src/gallium/drivers/i915/**/*
400bf215546Sopenharmony_ci      - src/gallium/winsys/i915/**/*
401bf215546Sopenharmony_ci      - src/intel/**/*
402bf215546Sopenharmony_ci      when: on_success
403bf215546Sopenharmony_ci
404bf215546Sopenharmony_ci.crocus-rules:
405bf215546Sopenharmony_ci  stage: intel
406bf215546Sopenharmony_ci  rules:
407bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
408bf215546Sopenharmony_ci    - changes:
409bf215546Sopenharmony_ci      - src/gallium/drivers/crocus/**/*
410bf215546Sopenharmony_ci      - src/gallium/winsys/crocus/**/*
411bf215546Sopenharmony_ci      - src/intel/**/*
412bf215546Sopenharmony_ci      when: on_success
413bf215546Sopenharmony_ci
414bf215546Sopenharmony_ci.iris-rules:
415bf215546Sopenharmony_ci  stage: intel
416bf215546Sopenharmony_ci  rules:
417bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
418bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
419bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
420bf215546Sopenharmony_ci    - changes: &iris_file_list
421bf215546Sopenharmony_ci      - src/gallium/drivers/iris/**/*
422bf215546Sopenharmony_ci      - src/gallium/winsys/iris/**/*
423bf215546Sopenharmony_ci      - src/intel/**/*
424bf215546Sopenharmony_ci      when: on_success
425bf215546Sopenharmony_ci
426bf215546Sopenharmony_ci# Unfortunately we can't sed the on_success from another rules set, so we have
427bf215546Sopenharmony_ci# to do duplicate the files lists to set the job to manual (see
428bf215546Sopenharmony_ci# .gl-rules-performance)
429bf215546Sopenharmony_ci.iris-rules-performance:
430bf215546Sopenharmony_ci  stage: intel
431bf215546Sopenharmony_ci  rules:
432bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
433bf215546Sopenharmony_ci    - !reference [.gl-rules-performance, rules]
434bf215546Sopenharmony_ci    - changes:
435bf215546Sopenharmony_ci        *iris_file_list
436bf215546Sopenharmony_ci      when: manual
437bf215546Sopenharmony_ci
438bf215546Sopenharmony_ci.anv-rules:
439bf215546Sopenharmony_ci  stage: intel
440bf215546Sopenharmony_ci  rules:
441bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
442bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
443bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
444bf215546Sopenharmony_ci    - changes:
445bf215546Sopenharmony_ci      - src/intel/**/*
446bf215546Sopenharmony_ci      when: on_success
447bf215546Sopenharmony_ci
448bf215546Sopenharmony_ci.intel-rules:
449bf215546Sopenharmony_ci  stage: intel
450bf215546Sopenharmony_ci  rules:
451bf215546Sopenharmony_ci    - !reference [.collabora-farm-rules, rules]
452bf215546Sopenharmony_ci    # Note that we trigger on changes both anv and iris, because piglit and skqp jobs test both.
453bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
454bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
455bf215546Sopenharmony_ci    - changes: &iris_file_list
456bf215546Sopenharmony_ci      - src/gallium/drivers/iris/**/*
457bf215546Sopenharmony_ci      - src/gallium/winsys/iris/**/*
458bf215546Sopenharmony_ci      - src/intel/**/*
459bf215546Sopenharmony_ci      when: on_success
460bf215546Sopenharmony_ci
461bf215546Sopenharmony_ci.zink-common-rules:
462bf215546Sopenharmony_ci  rules:
463bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
464bf215546Sopenharmony_ci    - changes:
465bf215546Sopenharmony_ci      - src/gallium/drivers/zink/**/*
466bf215546Sopenharmony_ci      when: on_success
467bf215546Sopenharmony_ci
468bf215546Sopenharmony_ci.zink-lvp-rules:
469bf215546Sopenharmony_ci  stage: layered-backends
470bf215546Sopenharmony_ci  rules:
471bf215546Sopenharmony_ci    - !reference [.zink-common-rules, rules]
472bf215546Sopenharmony_ci    - !reference [.lavapipe-rules, rules]
473bf215546Sopenharmony_ci
474bf215546Sopenharmony_ci.zink-anv-rules:
475bf215546Sopenharmony_ci  stage: layered-backends
476bf215546Sopenharmony_ci  rules:
477bf215546Sopenharmony_ci    - !reference [.zink-common-rules, rules]
478bf215546Sopenharmony_ci    - !reference [.anv-rules, rules]
479bf215546Sopenharmony_ci
480bf215546Sopenharmony_ci.zink-turnip-rules:
481bf215546Sopenharmony_ci  stage: layered-backends
482bf215546Sopenharmony_ci  rules:
483bf215546Sopenharmony_ci    - !reference [.zink-common-rules, rules]
484bf215546Sopenharmony_ci    - !reference [.turnip-rules, rules]
485bf215546Sopenharmony_ci
486bf215546Sopenharmony_ci# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
487bf215546Sopenharmony_ci# rules duplication manually
488bf215546Sopenharmony_ci.windows-build-rules:
489bf215546Sopenharmony_ci  rules:
490bf215546Sopenharmony_ci    - if: '$MICROSOFT_FARM == "offline"'
491bf215546Sopenharmony_ci      when: never
492bf215546Sopenharmony_ci    - !reference [.zink-common-rules, rules]
493bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
494bf215546Sopenharmony_ci    - changes:
495bf215546Sopenharmony_ci        *softpipe_file_list
496bf215546Sopenharmony_ci      when: on_success
497bf215546Sopenharmony_ci    - changes:
498bf215546Sopenharmony_ci        *lavapipe_file_list
499bf215546Sopenharmony_ci      when: on_success
500bf215546Sopenharmony_ci    - changes: &d3d12_file_list
501bf215546Sopenharmony_ci      - src/gallium/drivers/d3d12/**/*
502bf215546Sopenharmony_ci      - src/gallium/frontends/wgl/*
503bf215546Sopenharmony_ci      - src/gallium/winsys/d3d12/wgl/*
504bf215546Sopenharmony_ci      - src/gallium/targets/libgl-gdi/*
505bf215546Sopenharmony_ci      - src/gallium/targets/libgl-d3d12/*
506bf215546Sopenharmony_ci      when: on_success
507bf215546Sopenharmony_ci    - changes:
508bf215546Sopenharmony_ci      - src/microsoft/**/*
509bf215546Sopenharmony_ci      when: on_success
510bf215546Sopenharmony_ci    - changes:
511bf215546Sopenharmony_ci        *radv_file_list
512bf215546Sopenharmony_ci      when: on_success
513bf215546Sopenharmony_ci
514bf215546Sopenharmony_ci.glon12-test-rules:
515bf215546Sopenharmony_ci  rules:
516bf215546Sopenharmony_ci    - if: '$MICROSOFT_FARM == "offline"'
517bf215546Sopenharmony_ci      when: never
518bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
519bf215546Sopenharmony_ci    - changes: *d3d12_file_list
520bf215546Sopenharmony_ci      when: on_success
521bf215546Sopenharmony_ci    - changes:
522bf215546Sopenharmony_ci      - src/microsoft/compiler/*
523bf215546Sopenharmony_ci      when: on_success
524bf215546Sopenharmony_ci
525bf215546Sopenharmony_ci.spirv2dxil-test-rules:
526bf215546Sopenharmony_ci  rules:
527bf215546Sopenharmony_ci    - if: '$MICROSOFT_FARM == "offline"'
528bf215546Sopenharmony_ci      when: never
529bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
530bf215546Sopenharmony_ci    - !reference [.core-rules, rules]
531bf215546Sopenharmony_ci    - changes: &spirv2dxil_file_list
532bf215546Sopenharmony_ci      - src/microsoft/ci/*
533bf215546Sopenharmony_ci      - src/microsoft/compiler/*
534bf215546Sopenharmony_ci      - src/microsoft/spirv_to_dxil/*
535bf215546Sopenharmony_ci      when: on_success
536bf215546Sopenharmony_ci
537bf215546Sopenharmony_ci.dozen-test-rules:
538bf215546Sopenharmony_ci  rules:
539bf215546Sopenharmony_ci    - if: '$MICROSOFT_FARM == "offline"'
540bf215546Sopenharmony_ci      when: never
541bf215546Sopenharmony_ci    - !reference [.vulkan-rules, rules]
542bf215546Sopenharmony_ci    - changes:
543bf215546Sopenharmony_ci        *spirv2dxil_file_list
544bf215546Sopenharmony_ci      when: on_success
545bf215546Sopenharmony_ci    - changes:
546bf215546Sopenharmony_ci      - src/microsoft/vulkan/*
547bf215546Sopenharmony_ci      when: on_success
548bf215546Sopenharmony_ci
549bf215546Sopenharmony_ci.etnaviv-rules:
550bf215546Sopenharmony_ci  stage: etnaviv
551bf215546Sopenharmony_ci  rules:
552bf215546Sopenharmony_ci    - !reference [.gl-rules, rules]
553bf215546Sopenharmony_ci    - changes:
554bf215546Sopenharmony_ci      - src/etnaviv/**/*
555bf215546Sopenharmony_ci      - src/gallium/drivers/etnaviv/**/*
556bf215546Sopenharmony_ci      - src/gallium/winsys/etnaviv/**/*
557bf215546Sopenharmony_ci      - src/gallium/auxiliary/renderonly/**/*
558bf215546Sopenharmony_ci      - src/gallium/winsys/kmsro/**/*
559bf215546Sopenharmony_ci      - src/gallium/winsys/etnaviv/**/*
560bf215546Sopenharmony_ci      when: on_success
561bf215546Sopenharmony_ci
562bf215546Sopenharmony_ci# Rules for unusual architectures that only build a subset of drivers
563bf215546Sopenharmony_ci.ppc64el-rules:
564bf215546Sopenharmony_ci   rules:
565bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
566bf215546Sopenharmony_ci    - !reference [.zink-common-rules, rules]
567bf215546Sopenharmony_ci    - changes:
568bf215546Sopenharmony_ci        *softpipe_file_list
569bf215546Sopenharmony_ci      when: on_success
570bf215546Sopenharmony_ci    - changes:
571bf215546Sopenharmony_ci        *llvmpipe_file_list
572bf215546Sopenharmony_ci      when: on_success
573bf215546Sopenharmony_ci    - changes:
574bf215546Sopenharmony_ci        *lavapipe_file_list
575bf215546Sopenharmony_ci      when: on_success
576bf215546Sopenharmony_ci    - changes:
577bf215546Sopenharmony_ci        *radv_file_list
578bf215546Sopenharmony_ci      when: on_success
579bf215546Sopenharmony_ci    - changes:
580bf215546Sopenharmony_ci        *radeonsi_file_list
581bf215546Sopenharmony_ci      when: on_success
582bf215546Sopenharmony_ci    - changes:
583bf215546Sopenharmony_ci        *virgl_file_list
584bf215546Sopenharmony_ci      when: on_success
585bf215546Sopenharmony_ci    - changes:
586bf215546Sopenharmony_ci      - src/gallium/drivers/nouveau/**/*
587bf215546Sopenharmony_ci      - src/gallium/winsys/nouveau/**/*
588bf215546Sopenharmony_ci      when: on_success
589bf215546Sopenharmony_ci
590bf215546Sopenharmony_ci.s390x-rules:
591bf215546Sopenharmony_ci   rules:
592bf215546Sopenharmony_ci    - !reference [.no_scheduled_pipelines-rules, rules]
593bf215546Sopenharmony_ci    - !reference [.zink-common-rules, rules]
594bf215546Sopenharmony_ci    - changes:
595bf215546Sopenharmony_ci        *softpipe_file_list
596bf215546Sopenharmony_ci      when: on_success
597bf215546Sopenharmony_ci    - changes:
598bf215546Sopenharmony_ci        *llvmpipe_file_list
599bf215546Sopenharmony_ci      when: on_success
600bf215546Sopenharmony_ci    - changes:
601bf215546Sopenharmony_ci        *lavapipe_file_list
602bf215546Sopenharmony_ci      when: on_success
603