python.yml (20003B)
1 # This Source Code Form is subject to the terms of the Mozilla Public 2 # License, v. 2.0. If a copy of the MPL was not distributed with this 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 --- 5 task-defaults: 6 platform: linux2404-64/opt 7 always-target: 8 by-platform: 9 macosx.*: false 10 default: true 11 worker-type: 12 by-platform: 13 linux2404-64.*: t-linux-docker-amd 14 macosx1470-64.*: t-osx-1400-r8 15 windows11-64.*: win11-64-24h2-source 16 worker: 17 by-platform: 18 linux2404-64.*: 19 docker-image: {in-tree: "lint"} 20 max-run-time: 3600 21 env: 22 TASKGRAPH_SERIAL: "1" 23 macosx.*: 24 max-run-time: 3600 25 env: 26 PATH: "/usr/local/bin:/bin:/sbin:/usr/bin:/usr/sbin" 27 # ensure we don't use internal pypi for these tasks 28 PIP_INDEX_URL: https://pypi.python.org/simple/ 29 PIP_NO_INDEX: "0" 30 TASKGRAPH_SERIAL: "1" 31 default: 32 max-run-time: 3600 33 env: 34 TASKGRAPH_SERIAL: "1" 35 use-python: default 36 treeherder: 37 kind: test 38 tier: 1 39 run-on-repo-type: [hg] 40 run: 41 using: mach 42 use-caches: [checkout, pip, uv] 43 when: 44 files-changed: 45 - 'config/mozunit/**' 46 - 'python/mach_commands.py' 47 48 firefox-ci: 49 description: taskcluster/gecko_taskgraph unit tests 50 always-target: false 51 treeherder: 52 symbol: ci 53 run: 54 using: python-test 55 subsuite: ci 56 when: 57 files-changed: 58 - '.taskcluster.yml' 59 - 'taskcluster/kinds/**' 60 - 'taskcluster/**/*.py' 61 - 'third_party/python/taskcluster_taskgraph/**/*.py' 62 - 'tools/tryselect/selectors/auto.py' 63 64 fog: 65 description: Python unit tests for Firefox on Glean 66 platform: 67 - linux2404-64/opt 68 - macosx1470-64/opt 69 - windows11-64/opt 70 treeherder: 71 symbol: fp 72 run: 73 using: python-test 74 subsuite: fog 75 when: 76 files-changed: 77 - 'toolkit/components/glean/**' 78 - 'browser/config/version.txt' 79 80 mach: 81 description: python/mach unit tests 82 platform: 83 - linux2404-64/opt 84 - macosx1470-64/opt 85 - windows11-64/opt 86 treeherder: 87 symbol: mach 88 run: 89 using: python-test 90 subsuite: mach 91 when: 92 files-changed: 93 - 'python/mach/**' 94 - 'python/sites/**' 95 96 marionette-harness: 97 description: testing/marionette/harness unit tests 98 platform: 99 - linux2404-64/opt 100 - windows11-64/opt 101 treeherder: 102 symbol: mnh 103 run: 104 using: python-test 105 subsuite: marionette-harness 106 when: 107 files-changed: 108 - 'testing/marionette/harness/**' 109 - 'testing/mozbase/mozlog/mozlog/**' 110 - 'testing/mozbase/mozlog/setup.py' 111 112 mochitest-harness: 113 description: testing/mochitest unittests 114 platform: 115 - linux2404-64/opt 116 - linux2404-64/debug 117 - linux2404-64-asan/opt 118 always-target: false 119 require-build: 120 by-project: 121 try: 122 linux2404-64-asan/opt: build-linux64-asan/opt 123 linux2404-64/debug: build-linux64/debug 124 linux2404-64/opt: build-linux64/opt 125 default: 126 linux2404-64-asan/opt: build-linux64-asan/opt 127 linux2404-64/debug: build-linux64/debug 128 linux2404-64/opt: build-linux64-shippable/opt 129 treeherder: 130 symbol: py3(mch) 131 worker: 132 by-platform: 133 linux2404-64.*: 134 docker-image: {in-tree: "ubuntu2404-test"} 135 max-run-time: 3600 136 run: 137 using: run-task 138 cwd: '{checkout}' 139 command: > 140 source /builds/worker/scripts/xvfb.sh && 141 start_xvfb '1600x1200x24' 0 && 142 export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && 143 export TEST_HARNESS_ROOT=$MOZ_FETCHES_DIR/tests && 144 ./mach python-test --subsuite mochitest 145 fetches: 146 build: 147 - target.tar.xz 148 - artifact: target.common.tests.tar.zst 149 dest: tests 150 - artifact: target.mochitest.tests.tar.zst 151 dest: tests 152 toolchain: 153 - linux64-fix-stacks 154 when: 155 files-changed: 156 - 'testing/mochitest/**' 157 - 'testing/mozbase/mozrunner/mozrunner/**' 158 - 'testing/mozbase/moztest/moztest/selftest/**' 159 - 'testing/mozharness/mozharness/base/log.py' 160 - 'testing/mozharness/mozharness/mozilla/structuredlog.py' 161 - 'testing/mozharness/mozharness/mozilla/testing/errors.py' 162 - 'testing/profiles/**' 163 164 165 mozbase: 166 description: testing/mozbase unit tests 167 platform: 168 - linux2404-64/opt 169 - macosx1470-64/opt 170 - windows11-64/opt 171 treeherder: 172 symbol: mb 173 run: 174 using: python-test 175 subsuite: mozbase 176 when: 177 files-changed: 178 - 'testing/mozbase/**' 179 180 mozharness: 181 description: mozharness integration tests 182 treeherder: 183 symbol: mh 184 run: 185 using: python-test 186 subsuite: mozharness 187 when: 188 files-changed: 189 - 'testing/mozharness/**' 190 191 mozlint: 192 description: python/mozlint unit tests 193 platform: 194 - linux2404-64/opt 195 - macosx1470-64/opt 196 - windows11-64/opt 197 treeherder: 198 symbol: mozlint 199 tier: 2 200 run: 201 using: python-test 202 subsuite: mozlint 203 prepend-env: 204 PATH: "$MOZ_FETCHES_DIR/rustc/bin/:/builds/worker/.cargo/bin${PATH:+:$PATH}" 205 dependencies: 206 clang-tidy: 207 by-platform: 208 linux2404-64/opt: toolchain-linux64-clang-tidy 209 macosx1470-64/opt: toolchain-macosx64-clang-tidy 210 windows11-64/opt: toolchain-win64-clang-tidy 211 fetches: 212 toolchain: 213 by-platform: 214 linux2404-64/opt: 215 - linux64-node 216 - linux64-rust 217 macosx1470-64/opt: 218 - macosx64-node 219 - macosx64-rust 220 windows11-64/opt: 221 - win64-node 222 - win64-rust 223 clang-tidy: 224 - artifact: clang-tidy.tar.zst 225 dest: clang-tools 226 when: 227 files-changed: 228 - 'python/mozlint/**' 229 - 'tools/lint/**' 230 231 mozrelease: 232 description: python/mozrelease unit tests 233 treeherder: 234 symbol: release 235 run: 236 using: python-test 237 subsuite: mozrelease 238 when: 239 files-changed: 240 - 'python/mozrelease/**' 241 242 mozterm: 243 description: python/mozterm unit tests 244 platform: 245 - linux2404-64/opt 246 - windows11-64/opt 247 treeherder: 248 symbol: term 249 run: 250 using: python-test 251 subsuite: mozterm 252 when: 253 files-changed: 254 - 'python/mozterm/**' 255 256 mozversioncontrol: 257 description: python/mozversioncontrol unit tests 258 platform: 259 - linux2404-64/opt 260 - macosx1470-64/opt 261 - windows11-64/opt 262 treeherder: 263 symbol: vcs 264 run: 265 using: python-test 266 subsuite: mozversioncontrol 267 fetches: 268 toolchain: 269 by-platform: 270 linux2404-64/opt: 271 - linux64-jj 272 macosx1470-64/opt: 273 - macosx64-jj 274 windows11-64/opt: 275 - win64-jj 276 when: 277 files-changed: 278 - 'python/mozversioncontrol/**' 279 280 raptor: 281 description: testing/raptor unit tests 282 platform: 283 - linux2404-64/opt 284 - macosx1470-64/opt 285 - windows11-64/opt 286 treeherder: 287 symbol: rap 288 run: 289 using: python-test 290 subsuite: raptor 291 when: 292 files-changed: 293 - 'testing/raptor/**' 294 295 reftest-harness: 296 description: layout/tools/reftest unittests 297 platform: 298 - linux2404-64/opt 299 - linux2404-64/debug 300 - linux2404-64-asan/opt 301 require-build: 302 by-project: 303 try: 304 linux2404-64-asan/opt: build-linux64-asan/opt 305 linux2404-64/debug: build-linux64/debug 306 linux2404-64/opt: build-linux64/opt 307 default: 308 linux2404-64-asan/opt: build-linux64-asan/opt 309 linux2404-64/debug: build-linux64/debug 310 linux2404-64/opt: build-linux64-shippable/opt 311 always-target: false 312 treeherder: 313 symbol: py3(ref) 314 worker: 315 by-platform: 316 linux2404-64.*: 317 docker-image: {in-tree: "ubuntu2404-test"} 318 max-run-time: 3600 319 run: 320 using: run-task 321 cwd: '{checkout}' 322 command: > 323 source /builds/worker/scripts/xvfb.sh && 324 start_xvfb '1600x1200x24' 0 && 325 export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && 326 export TEST_HARNESS_ROOT=$MOZ_FETCHES_DIR/tests && 327 ./mach python-test --subsuite reftest 328 fetches: 329 build: 330 - target.tar.xz 331 - artifact: target.common.tests.tar.zst 332 dest: tests 333 - artifact: target.reftest.tests.tar.zst 334 dest: tests 335 toolchain: 336 - linux64-fix-stacks 337 when: 338 files-changed: 339 - 'layout/tools/reftest/**' 340 - 'testing/mozbase/mozrunner/mozrunner/**' 341 - 'testing/mozbase/moztest/moztest/selftest/**' 342 - 'testing/mozharness/mozharness/base/log.py' 343 - 'testing/mozharness/mozharness/mozilla/structuredlog.py' 344 - 'testing/mozharness/mozharness/mozilla/testing/errors.py' 345 346 taskgraph-tests: 347 description: taskcluster/gecko_taskgraph unit tests 348 treeherder: 349 symbol: tg 350 run: 351 using: python-test 352 subsuite: taskgraph 353 when: 354 files-changed: 355 - 'python/mach/**/*.py' 356 - 'taskcluster/**/*.py' 357 - 'third_party/python/taskcluster_taskgraph/**/*.py' 358 359 tryselect: 360 description: tools/tryselect unit tests 361 platform: 362 - linux2404-64/opt 363 - windows11-64/opt 364 treeherder: 365 symbol: try 366 run: 367 using: python-test 368 subsuite: try 369 when: 370 files-changed: 371 - 'taskcluster/config.yml' 372 - 'taskcluster/kinds/test/**' 373 - 'taskcluster/gecko_taskgraph/transforms/**' 374 - 'third_party/python/taskcluster_taskgraph/**/*.py' 375 - 'tools/tryselect/**' 376 377 mozbuild: 378 matrix: 379 python: ['3.9', '3.11'] 380 description: mozbuild unit tests (python{matrix[python]}) 381 platform: 382 - linux2404-64/opt 383 - macosx1470-64/opt 384 - windows11-64/opt 385 treeherder: 386 symbol: mbu{matrix[python]} 387 use-python: "{matrix[python]}" 388 run: 389 using: python-test 390 subsuite: mozbuild 391 fetches: 392 toolchain: 393 by-platform: 394 linux2404-64/opt: 395 - linux64-node 396 - terser 397 macosx1470-64/opt: 398 - macosx64-node 399 - terser 400 windows11-64/opt: 401 - win64-node 402 - win64-mozmake 403 - terser 404 when: 405 files-changed: 406 - '**/moz.configure' 407 - 'build/moz.configure/**' 408 - 'config/tests/**' 409 - 'dom/bindings/mozwebidlcodegen/**' 410 - 'modules/libpref/init/**' 411 - 'modules/libpref/test/**' 412 - 'python/mach/**' 413 - 'python/mozboot/**' 414 - 'python/mozbuild/**' 415 - 'python/mozterm/**' 416 - 'python/mozversioncontrol/**' 417 - 'testing/mozbase/**' 418 - 'testing/xpcshell/xpcshellcommandline.py' 419 420 mozperftest: 421 description: mozperftest unit tests 422 platform: 423 - linux2404-64/opt 424 - macosx1470-64/opt 425 - windows11-64/opt 426 treeherder: 427 symbol: mpu 428 run: 429 mach: perftest-test 430 fetches: 431 toolchain: 432 by-platform: 433 linux2404-64/opt: 434 - linux64-node 435 - browsertime 436 macosx1470-64/opt: 437 - macosx64-node 438 - browsertime 439 windows11-64/opt: 440 - win64-node 441 - browsertime 442 when: 443 files-changed: 444 - 'testing/**' 445 - 'python/**' 446 447 nimbus: 448 description: > 449 Ensure the targeting context metric is up-to-date with the targeting context definition. 450 platform: 451 - linux2404-64/opt 452 treeherder: 453 symbol: py3(nimbus) 454 require-build: 455 by-project: 456 try: 457 linux2404-64/opt: build-linux64/opt 458 default: 459 linux2404-64/opt: build-linux64/opt 460 fetches: 461 build: 462 - artifact: target.tar.xz 463 - artifact: target.common.tests.tar.zst 464 worker: 465 by-platform: 466 linux2404-64.*: 467 docker-image: {in-tree: "ubuntu2404-test"} 468 max-run-time: 3600 469 run: 470 using: run-task 471 cwd: '{checkout}' 472 command: > 473 export DUMP_TARGETING_CONTEXT_PATH=$(mktemp) && 474 env LD_LIBRARY_PATH=${MOZ_FETCHES_DIR}/firefox \ 475 ${MOZ_FETCHES_DIR}/bin/xpcshell \ 476 -g ${MOZ_FETCHES_DIR}/firefox \ 477 -a ${MOZ_FETCHES_DIR}/firefox/browser \ 478 toolkit/components/nimbus/test/python/dump-targeting-context.js && 479 export GECKO_BINARY_PATH=${MOZ_FETCHES_DIR}/firefox/firefox && 480 ./mach python-test --subsuite nimbus 481 when: 482 files-changed: 483 - 'toolkit/components/nimbus/metrics.yaml' 484 - 'toolkit/components/nimbus/lib/TargetingContextRecorder.sys.mjs' 485 - 'toolkit/components/nimbus/test/python/**/*' 486 487 fxms-schemas: 488 description: > 489 Ensure messaging-system schemas are up-to-date and run Experimenter 490 integration tests. 491 platform: 492 - linux2404-64/opt 493 treeherder: 494 symbol: py3(fxms) 495 require-build: 496 by-project: 497 try: 498 linux2404-64/opt: build-linux64/opt 499 default: 500 linux2404-64/opt: build-linux64/opt 501 fetches: 502 build: 503 - artifact: target.tar.xz 504 - artifact: target.common.tests.tar.zst 505 worker: 506 by-platform: 507 linux2404-64.*: 508 docker-image: {in-tree: "ubuntu2404-test"} 509 max-run-time: 3600 510 run: 511 using: run-task 512 cwd: '{checkout}' 513 command: > 514 cd browser/components/asrouter/content-src/schemas && 515 env LD_LIBRARY_PATH=${MOZ_FETCHES_DIR}/firefox \ 516 ${MOZ_FETCHES_DIR}/bin/xpcshell \ 517 -g ${MOZ_FETCHES_DIR}/firefox \ 518 -a ${MOZ_FETCHES_DIR}/firefox/browser \ 519 extract-test-corpus.js 520 ../../../../../mach python -- make-schemas.py --check 521 when: 522 files-changed: 523 - 'browser/components/asrouter/content-src/schemas/extract-test-corpus.js' 524 - 'browser/components/asrouter/content-src/schemas/make-schemas.py' 525 - 'browser/components/asrouter/content-src/**/*.schema.json' 526 - 'browser/components/asrouter/modules/CFRMessageProvider.sys.mjs' 527 - 'browser/components/asrouter/modules/OnboardingMessageProvider.sys.mjs' 528 - 'browser/components/asrouter/modules/PanelTestProvider.sys.mjs' 529 530 condprof: 531 description: testing/condprofile unit tests 532 platform: 533 - linux2404-64/opt 534 - macosx1470-64/opt 535 - windows11-64/opt 536 treeherder: 537 symbol: condprof 538 run: 539 using: python-test 540 subsuite: condprof 541 when: 542 files-changed: 543 - 'testing/condprofile/condprof**' 544 - 'testing/condprofile/setup.py' 545 546 manifest: 547 description: testing/manifest unit tests 548 always-target: false 549 use-python: "3.11" 550 treeherder: 551 symbol: mf 552 run: 553 using: python-test 554 subsuite: manifest 555 when: 556 files-changed: 557 - 'testing/manifest/**' 558 559 talos: 560 description: testing/talos unit tests 561 platform: windows11-64/opt 562 treeherder: 563 symbol: tal 564 run: 565 using: python-test 566 subsuite: talos 567 when: 568 files-changed: 569 - 'testing/talos/**' 570 571 telemetry-integration-tests: 572 description: pytest-based integration tests for Telemetry 573 always-target: false 574 platform: 575 - linux2404-64/opt 576 worker: 577 by-platform: 578 linux2404-64.*: 579 docker-image: {in-tree: "ubuntu2404-test"} 580 max-run-time: 3600 581 require-build: 582 by-project: 583 try: 584 linux2404-64/opt: build-linux64/opt 585 default: 586 linux2404-64/opt: build-linux64-shippable/opt 587 treeherder: 588 symbol: tt(i) 589 tier: 3 590 run-on-projects: [] 591 run: 592 using: run-task 593 cwd: '{checkout}' 594 command: > 595 source /builds/worker/scripts/xvfb.sh && 596 start_xvfb '1600x1200x24' 0 && 597 export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox && 598 ./mach python-test --subsuite telemetry-integration-tests 599 fetches: 600 build: 601 - target.tar.bz2 602 - artifact: target.common.tests.tar.zst 603 dest: tests 604 - artifact: target.reftest.tests.tar.zst 605 dest: tests 606 when: 607 files-changed: 608 - 'toolkit/components/telemetry/**' 609 610 telemetry-python: 611 description: Python unit tests for Telemetry 612 platform: 613 - linux2404-64/opt 614 - macosx1470-64/opt 615 - windows11-64/opt 616 treeherder: 617 symbol: tp 618 run: 619 using: python-test 620 subsuite: telemetry-python 621 fetches: 622 toolchain: 623 by-platform: 624 linux2404-64/opt: 625 - linux64-node 626 macosx1470-64/opt: 627 - macosx64-node 628 windows11-64/opt: 629 - win64-node 630 when: 631 files-changed: 632 - 'toolkit/components/telemetry/**' 633 634 verify-decision: 635 description: verifications on Decision task output 636 run-on-projects: ["autoland"] 637 treeherder: 638 platform: gecko-decision/opt 639 symbol: verify 640 run: 641 using: python-test 642 subsuite: decision 643 when: 644 files-changed: 645 - .cron.yml 646 - .taskcluster.yml 647 - 'taskcluster/**' 648 - 'third_party/python/taskcluster/**' 649 - 'third_party/python/taskcluster_taskgraph/**' 650 651 webext: 652 description: WebExtensions python utilities unit tests 653 platform: 654 - linux2404-64/opt 655 treeherder: 656 symbol: webext-py 657 tier: 2 658 run: 659 using: python-test 660 subsuite: webext-python 661 when: 662 files-changed: 663 - 'toolkit/components/extensions/webidl-api/**' 664 - 'toolkit/components/extensions/schemas/*.json' 665 - 'browser/components/extensions/schemas/*.json' 666 - 'mobile/shared/components/extensions/schemas/*.json' 667 668 xpcom: 669 description: xpcom unit tests 670 platform: 671 - linux2404-64/opt 672 treeherder: 673 symbol: xpcom 674 run: 675 using: python-test 676 subsuite: xpcom 677 when: 678 files-changed: 679 - 'third_party/python/ply/**' 680 - 'xpcom/components/*.py' 681 - 'xpcom/components/test/**' 682 - 'xpcom/ds/tools/**' 683 - 'xpcom/ds/test/**' 684 - 'xpcom/idl-parser/**'