test.yml (19851B)
1 components: 2 wpt-base: 3 provisionerId: proj-wpt 4 workerType: ci 5 schedulerId: taskcluster-github 6 deadline: "24 hours" 7 image: ghcr.io/web-platform-tests/wpt:2 8 maxRunTime: 7200 9 artifacts: 10 public/results: 11 path: /home/test/artifacts 12 type: directory 13 extra: 14 github: 15 customCheckRun: 16 textArtifactName: public/results/checkrun.md 17 18 wpt-testharness: 19 chunks: 16 20 maxRunTime: 14400 21 vars: 22 test-type: testharness 23 24 wpt-reftest: 25 chunks: 6 26 vars: 27 test-type: reftest 28 29 wpt-print-reftest: 30 chunks: 1 31 vars: 32 test-type: print-reftest 33 34 wpt-wdspec: 35 chunks: 2 36 vars: 37 test-type: wdspec 38 39 wpt-crashtest: 40 chunks: 1 41 vars: 42 test-type: crashtest 43 44 run-options: 45 options: 46 xvfb: true 47 oom-killer: true 48 hosts: true 49 install-certificates: true 50 51 wpt-run: 52 name: wpt-${vars.browser}-${vars.channel}-${vars.suite}-${chunks.id} 53 options: 54 browser: 55 - ${vars.browser} 56 channel: ${vars.channel} 57 command: >- 58 ./tools/ci/taskcluster-run.py 59 ${vars.browser} 60 ${vars.channel} 61 -- 62 --channel=${vars.channel} 63 --log-wptreport=../artifacts/wpt_report.json 64 --log-wptscreenshot=../artifacts/wpt_screenshot.txt 65 --no-fail-on-unexpected 66 --this-chunk=${chunks.id} 67 --total-chunks=${chunks.total} 68 --test-type=${vars.suite} 69 70 trigger-master: 71 trigger: 72 branch: 73 - master 74 75 trigger-push: 76 trigger: 77 branch: 78 - triggers/${vars.browser}_${vars.channel} 79 80 trigger-daily: 81 trigger: 82 branch: 83 - epochs/daily 84 85 trigger-weekly: 86 trigger: 87 branch: 88 - epochs/weekly 89 90 trigger-pr: 91 trigger: 92 pull-request: 93 94 browser-firefox: 95 depends-on: 96 - download-firefox-${vars.channel} 97 download-artifacts: 98 - task: download-firefox-${vars.channel} 99 glob: public/results/firefox-${vars.channel}.* 100 dest: build/ 101 extract: true 102 103 browser-webkitgtk_minibrowser: {} 104 105 browser-wpewebkit_minibrowser: {} 106 107 browser-chrome: {} 108 109 browser-chromium: {} 110 111 browser-servo: {} 112 113 browser-firefox_android: 114 privileged: true 115 scopes: 116 - "docker-worker:capability:privileged" 117 chunks-override: 118 testharness: 30 119 120 tox-python3_8: 121 env: 122 TOXENV: py38 123 PY_COLORS: "0" 124 install: 125 - python3.8 126 - python3.8-distutils 127 - python3.8-dev 128 - python3.8-venv 129 130 tox-python3_14: 131 env: 132 TOXENV: py314 133 PY_COLORS: "0" 134 install: 135 - python3.14 136 - python3.14-dev 137 - python3.14-venv 138 tests-affected: 139 options: 140 browser: 141 - ${vars.browser} 142 channel: ${vars.channel} 143 schedule-if: 144 run-job: 145 - affected_tests 146 147 tasks: 148 # The scheduling order of tasks is NOT determined by the order in which they 149 # are defined, but by their dependencies (depends-on). 150 151 # Run full suites on push 152 - $map: 153 for: 154 - vars: 155 suite: testharness 156 - vars: 157 suite: wdspec 158 - vars: 159 suite: crashtest 160 do: 161 $map: 162 for: 163 - vars: 164 browser: firefox 165 channel: nightly 166 use: 167 - trigger-master 168 - trigger-push 169 - vars: 170 browser: firefox 171 channel: beta 172 use: 173 - trigger-weekly 174 - trigger-push 175 - vars: 176 browser: firefox 177 channel: stable 178 use: 179 - trigger-daily 180 - trigger-push 181 - vars: 182 # Chromium ToT 183 browser: chromium 184 channel: nightly 185 use: 186 - trigger-daily 187 - trigger-push 188 - vars: 189 browser: chrome 190 channel: canary 191 use: 192 - trigger-master 193 - trigger-push 194 - vars: 195 browser: chrome 196 channel: dev 197 use: 198 - trigger-weekly 199 - trigger-push 200 - vars: 201 browser: chrome 202 channel: beta 203 use: 204 - trigger-weekly 205 - trigger-push 206 - vars: 207 browser: chrome 208 channel: stable 209 use: 210 - trigger-daily 211 - trigger-push 212 - vars: 213 browser: webkitgtk_minibrowser 214 channel: nightly 215 use: 216 - trigger-daily 217 - trigger-push 218 - vars: 219 browser: webkitgtk_minibrowser 220 channel: stable 221 use: 222 - trigger-weekly 223 - trigger-push 224 - vars: 225 browser: webkitgtk_minibrowser 226 channel: beta 227 use: 228 - trigger-weekly 229 - trigger-push 230 - vars: 231 browser: wpewebkit_minibrowser 232 channel: nightly 233 use: 234 - trigger-daily 235 - trigger-push 236 - vars: 237 browser: wpewebkit_minibrowser 238 channel: stable 239 use: 240 - trigger-weekly 241 - trigger-push 242 - vars: 243 browser: wpewebkit_minibrowser 244 channel: beta 245 use: 246 - trigger-weekly 247 - trigger-push 248 - vars: 249 browser: servo 250 channel: nightly 251 use: 252 - trigger-daily 253 - trigger-push 254 - vars: 255 browser: firefox_android 256 channel: nightly 257 use: 258 - trigger-daily 259 - trigger-push 260 - vars: 261 browser: firefox_android 262 channel: stable 263 use: 264 - trigger-daily 265 - trigger-push 266 do: 267 - ${vars.browser}-${vars.channel}-${vars.suite}: 268 use: 269 - wpt-base 270 - run-options 271 - wpt-run 272 - browser-${vars.browser} 273 - wpt-${vars.suite} 274 description: >- 275 A subset of WPT's "${vars.suite}" tests (chunk number ${chunks.id} 276 of ${chunks.total}), run in the ${vars.channel} release of 277 ${vars.browser}. 278 279 # Reftests are currently broken on firefox_android; this should otherwise be identical 280 # to the section above 281 - $map: 282 for: 283 - vars: 284 suite: reftest 285 do: 286 $map: 287 for: 288 - vars: 289 browser: firefox 290 channel: nightly 291 use: 292 - trigger-master 293 - trigger-push 294 - vars: 295 browser: firefox 296 channel: beta 297 use: 298 - trigger-weekly 299 - trigger-push 300 - vars: 301 browser: firefox 302 channel: stable 303 use: 304 - trigger-daily 305 - trigger-push 306 - vars: 307 # Chromium ToT 308 browser: chromium 309 channel: nightly 310 use: 311 - trigger-daily 312 - trigger-push 313 - vars: 314 browser: chrome 315 channel: canary 316 use: 317 - trigger-master 318 - trigger-push 319 - vars: 320 browser: chrome 321 channel: dev 322 use: 323 - trigger-weekly 324 - trigger-push 325 - vars: 326 browser: chrome 327 channel: beta 328 use: 329 - trigger-weekly 330 - trigger-push 331 - vars: 332 browser: chrome 333 channel: stable 334 use: 335 - trigger-daily 336 - trigger-push 337 - vars: 338 browser: webkitgtk_minibrowser 339 channel: nightly 340 use: 341 - trigger-daily 342 - trigger-push 343 - vars: 344 browser: webkitgtk_minibrowser 345 channel: stable 346 use: 347 - trigger-weekly 348 - trigger-push 349 - vars: 350 browser: webkitgtk_minibrowser 351 channel: beta 352 use: 353 - trigger-weekly 354 - trigger-push 355 - vars: 356 browser: wpewebkit_minibrowser 357 channel: nightly 358 use: 359 - trigger-daily 360 - trigger-push 361 - vars: 362 browser: wpewebkit_minibrowser 363 channel: stable 364 use: 365 - trigger-weekly 366 - trigger-push 367 - vars: 368 browser: wpewebkit_minibrowser 369 channel: beta 370 use: 371 - trigger-weekly 372 - trigger-push 373 - vars: 374 browser: servo 375 channel: nightly 376 use: 377 - trigger-daily 378 - trigger-push 379 do: 380 - ${vars.browser}-${vars.channel}-${vars.suite}: 381 use: 382 - wpt-base 383 - run-options 384 - wpt-run 385 - browser-${vars.browser} 386 - wpt-${vars.suite} 387 description: >- 388 A subset of WPT's "${vars.suite}" tests (chunk number ${chunks.id} 389 of ${chunks.total}), run in the ${vars.channel} release of 390 ${vars.browser}. 391 392 # print-reftest are currently only supported by Chrome and Firefox. 393 - $map: 394 for: 395 - vars: 396 suite: print-reftest 397 do: 398 $map: 399 for: 400 - vars: 401 browser: firefox 402 channel: nightly 403 use: 404 - trigger-master 405 - trigger-push 406 - vars: 407 browser: firefox 408 channel: beta 409 use: 410 - trigger-weekly 411 - trigger-push 412 - vars: 413 browser: firefox 414 channel: stable 415 use: 416 - trigger-daily 417 - trigger-push 418 - vars: 419 # Chromium ToT 420 browser: chromium 421 channel: nightly 422 use: 423 - trigger-daily 424 - trigger-push 425 - vars: 426 browser: chrome 427 channel: canary 428 use: 429 - trigger-master 430 - trigger-push 431 - vars: 432 browser: chrome 433 channel: dev 434 use: 435 - trigger-weekly 436 - trigger-push 437 - vars: 438 browser: chrome 439 channel: beta 440 use: 441 - trigger-weekly 442 - trigger-push 443 - vars: 444 browser: chrome 445 channel: stable 446 use: 447 - trigger-daily 448 - trigger-push 449 do: 450 - ${vars.browser}-${vars.channel}-${vars.suite}: 451 use: 452 - wpt-base 453 - run-options 454 - wpt-run 455 - browser-${vars.browser} 456 - wpt-${vars.suite} 457 description: >- 458 A subset of WPT's "${vars.suite}" tests (chunk number ${chunks.id} 459 of ${chunks.total}), run in the ${vars.channel} release of 460 ${vars.browser}. 461 462 - $map: 463 for: 464 - vars: 465 browser: firefox 466 channel: nightly 467 stability-exclude-users: 468 - moz-wptsync-bot 469 required: true 470 - vars: 471 browser: chrome 472 channel: dev 473 stability-exclude-users: 474 - chromium-wpt-export-bot 475 required: false 476 do: 477 - wpt-${vars.browser}-${vars.channel}-stability: 478 use: 479 - wpt-base 480 - run-options 481 - browser-${vars.browser} 482 - trigger-pr 483 - tests-affected 484 description: >- 485 Verify that all tests affected by a pull request are stable 486 when executed in ${vars.browser}. 487 command: >- 488 ./tools/ci/taskcluster-run.py 489 --commit-range base_head 490 ${vars.browser} 491 ${vars.channel} 492 -- 493 --channel=${vars.channel} 494 --verify 495 --verify-no-chaos-mode 496 --verify-repeat-loop=0 497 --verify-repeat-restart=10 498 --github-checks-text-file="/home/test/artifacts/checkrun.md" 499 exclude-users: ${vars.stability-exclude-users} 500 required: ${vars.required} 501 502 - wpt-${vars.browser}-${vars.channel}-results: 503 use: 504 - wpt-base 505 - run-options 506 - browser-${vars.browser} 507 - trigger-pr 508 - tests-affected 509 description: >- 510 Collect results for all tests affected by a pull request in 511 ${vars.browser}. 512 command: >- 513 ./tools/ci/taskcluster-run.py 514 --commit-range base_head 515 ${vars.browser} 516 ${vars.channel} 517 -- 518 --channel=${vars.channel} 519 --no-fail-on-unexpected 520 --log-wptreport=../artifacts/wpt_report.json 521 --log-wptscreenshot=../artifacts/wpt_screenshot.txt 522 523 - wpt-${vars.browser}-${vars.channel}-results-without-changes: 524 use: 525 - wpt-base 526 - run-options 527 - browser-${vars.browser} 528 - trigger-pr 529 - tests-affected 530 options: 531 checkout: base_head 532 description: >- 533 Collect results for all tests affected by a pull request in 534 ${vars.browser} but without the changes in the PR. 535 command: >- 536 ./tools/ci/taskcluster-run.py 537 --commit-range task_head 538 ${vars.browser} 539 ${vars.channel} 540 -- 541 --channel=${vars.channel} 542 --no-fail-on-unexpected 543 --log-wptreport=../artifacts/wpt_report.json 544 --log-wptscreenshot=../artifacts/wpt_screenshot.txt 545 - $map: 546 for: 547 - vars: 548 channel: nightly 549 - vars: 550 channel: beta 551 - vars: 552 channel: stable 553 do: 554 download-firefox-${vars.channel}: 555 use: 556 - wpt-base 557 command: "./wpt install --download-only --destination /home/test/artifacts/ --channel=${vars.channel} --rename=firefox-${vars.channel} firefox browser" 558 559 - lint: 560 use: 561 - wpt-base 562 - trigger-master 563 - trigger-pr 564 description: >- 565 Lint for wpt-specific requirements 566 command: "./wpt lint --all --github-checks-text-file=/home/test/artifacts/checkrun.md" 567 568 - update-built: 569 use: 570 - wpt-base 571 - trigger-pr 572 schedule-if: 573 run-job: 574 - update_built 575 command: "./tools/ci/ci_built_diff.sh" 576 577 - tools/ unittests (Python 3.8): 578 description: >- 579 Unit tests for tools running under Python 3.8, excluding wptrunner 580 use: 581 - wpt-base 582 - trigger-pr 583 - tox-python3_8 584 command: ./tools/ci/ci_tools_unittest.sh 585 env: 586 HYPOTHESIS_PROFILE: ci 587 schedule-if: 588 run-job: 589 - tools_unittest 590 591 - tools/ unittests (Python 3.14): 592 description: >- 593 Unit tests for tools running under Python 3.14, excluding wptrunner 594 use: 595 - wpt-base 596 - trigger-pr 597 - tox-python3_14 598 command: ./tools/ci/ci_tools_unittest.sh 599 env: 600 HYPOTHESIS_PROFILE: ci 601 schedule-if: 602 run-job: 603 - tools_unittest 604 605 - tools/ integration tests (Python 3.8): 606 description: >- 607 Integration tests for tools running under Python 3.8 608 use: 609 - wpt-base 610 - trigger-pr 611 - tox-python3_8 612 command: ./tools/ci/ci_tools_integration_test.sh 613 install: 614 - libnss3-tools 615 options: 616 oom-killer: true 617 browser: 618 - firefox 619 - chrome 620 channel: experimental 621 xvfb: true 622 hosts: true 623 schedule-if: 624 run-job: 625 - wpt_integration 626 627 - tools/ integration tests (Python 3.14): 628 description: >- 629 Integration tests for tools running under Python 3.14 630 use: 631 - wpt-base 632 - trigger-pr 633 - tox-python3_14 634 command: ./tools/ci/ci_tools_integration_test.sh 635 install: 636 - libnss3-tools 637 options: 638 oom-killer: true 639 browser: 640 - firefox 641 - chrome 642 channel: experimental 643 xvfb: true 644 hosts: true 645 schedule-if: 646 run-job: 647 - wpt_integration 648 649 - resources/ tests (Python 3.8): 650 description: >- 651 Tests for testharness.js and other files in resources/ under Python 3.8 652 use: 653 - wpt-base 654 - trigger-pr 655 - tox-python3_8 656 command: ./tools/ci/ci_resources_unittest.sh 657 install: 658 - libnss3-tools 659 options: 660 browser: 661 - firefox 662 xvfb: true 663 hosts: true 664 schedule-if: 665 run-job: 666 - resources_unittest 667 668 - resources/ tests (Python 3.14): 669 description: >- 670 Tests for testharness.js and other files in resources/ under Python 3.14 671 use: 672 - wpt-base 673 - trigger-pr 674 - tox-python3_14 675 command: ./tools/ci/ci_resources_unittest.sh 676 install: 677 - libnss3-tools 678 options: 679 browser: 680 - firefox 681 xvfb: true 682 hosts: true 683 schedule-if: 684 run-job: 685 - resources_unittest 686 687 - $map: 688 for: 689 - vars: 690 browser: firefox 691 channel: nightly 692 - vars: 693 browser: chrome 694 channel: dev 695 - vars: 696 browser: firefox_android 697 channel: nightly 698 do: 699 - infrastructure/ tests (${vars.browser}): 700 description: >- 701 Smoketests for wptrunner in ${vars.browser}. 702 use: 703 - wpt-base 704 - trigger-pr 705 - browser-${vars.browser} 706 command: ./tools/ci/ci_wptrunner_infrastructure.sh ${vars.browser} ${vars.channel} 707 install: 708 - python3-pip 709 - libnss3-tools 710 - libappindicator1 711 - fonts-liberation 712 options: 713 oom-killer: true 714 browser: 715 - ${vars.browser} 716 channel: ${vars.channel} 717 xvfb: true 718 hosts: false 719 schedule-if: 720 run-job: 721 - wptrunner_infrastructure 722 723 # Note: even though sink-task does not have `depends-on`, it depends on all 724 # other tasks (dynamically added by tools/ci/tc/decision.py). 725 - sink-task: 726 description: >- 727 Sink task for all other tasks; indicates success 728 use: 729 - wpt-base 730 - trigger-pr 731 command: "./wpt tc-sink-task --github-checks-text-file=/home/test/artifacts/checkrun.md" 732 requires: all-resolved