tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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/**'