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