taskcluster/ci/source-test/python.yml
author Andrew Halberstadt <ahalberstadt@mozilla.com>
Thu, 22 Mar 2018 17:24:15 -0400
changeset 410601 ad34ac3d45a62dff961bd247e36ab209af2cc0e5
parent 399706 7e910ce230d09b7380de3c8e5552e435cae14166
child 410614 c063db1cf3709bccb2441b5fba3cd0215d6644cd
permissions -rw-r--r--
Bug 1436802 - [lint] Add some tests for the flake8 linter integration r=andi This essentially tests tools/lint/python/flake8.py. Though it also adds a basic framework for testing all the other linters as well. Getting this added now will allow others to collaborate on adding more tests without needing to get to 100% coverage for all linters right off the bat. All python tests under tools/lint/test will run as part of the 'ml' task on Linux, and the build task on Windows (OSX coverage is currently missing for python tests). The flake8 linter currently has a bug where the 'exclude' argument is ignored. This is why we need to also exclude 'tools/lint/test/files' in topsrcdir/.flake8, even though it is already listed in the 'mach_commands.py'. Other linters shouldn't need to do this, the exclusion in 'mach_commands.py' should be good enough. See bug 1277851 for more details. MozReview-Commit-ID: 9ho8C83eeuj

job-defaults:
    platform: linux64/opt
    always-target: true
    worker-type:
        by-platform:
            linux64.*: aws-provisioner-v1/gecko-t-linux-xlarge
    worker:
        by-platform:
            linux64.*:
                docker-image: {in-tree: "lint"}
                max-run-time: 3600
    treeherder:
        kind: test
        tier: 2
    run:
        using: mach
    when:
        files-changed:
            - 'config/mozunit.py'
            - 'python/mach_commands.py'

taskgraph-tests:
    description: taskcluster/taskgraph unit tests
    treeherder:
        symbol: py(tg)
    run:
        mach: python-test --subsuite taskgraph
    when:
        files-changed:
            - 'taskcluster/**/*.py'
            - 'python/mach/**/*.py'

marionette-harness:
    description: testing/marionette/harness unit tests
    treeherder:
        symbol: py(mnh)
    run:
        mach: python-test --subsuite marionette-harness
    when:
        files-changed:
            - 'testing/marionette/harness/**'
            - 'testing/mozbase/mozlog/mozlog/**'
            - 'testing/mozbase/mozlog/setup.py'
            - 'testing/mozbase/packages.txt'

mochitest-harness:
    description: testing/mochitest unittests
    platform:
        - linux64/opt
        - linux64/debug
        - linux64-asan/opt
    require-build: true
    always-target: false
    treeherder:
        symbol: py(mch)
    worker:
        by-platform:
            linux64.*:
                docker-image: {in-tree: "desktop1604-test"}
                max-run-time: 3600
    run:
        using: run-task
        command: >
            source /builds/worker/scripts/xvfb.sh &&
            start_xvfb '1600x1200x24' 0 &&
            cd /builds/worker/checkouts/gecko &&
            ./mach python-test --subsuite mochitest
    when:
        files-changed:
            - 'testing/mochitest/**'
            - 'testing/mozbase/moztest/moztest/selftest/**'
            - 'testing/mozharness/mozharness/base/log.py'
            - 'testing/mozharness/mozharness/mozilla/structuredlog.py'
            - 'testing/mozharness/mozharness/mozilla/testing/errors.py'
            - 'testing/profiles/prefs_general.js'

mozbase:
    description: testing/mozbase unit tests
    treeherder:
        symbol: py(mb)
    run:
        mach: python-test --subsuite mozbase
    when:
        files-changed:
            - 'testing/mozbase/**'

mozharness:
    description: mozharness integration tests
    treeherder:
        symbol: py(mh)
    run:
        using: run-task
        cache-dotcache: true
        command: >
            cd /builds/worker/checkouts/gecko/testing/mozharness &&
            /usr/local/bin/tox -e py27-hg4.3
    when:
        files-changed:
            - 'testing/mozharness/**'

mozlint:
    description: python/mozlint unit tests
    treeherder:
        symbol: py(ml)
    run:
        mach: python-test --subsuite mozlint
    when:
        files-changed:
            - 'python/mozlint/**'
            - 'tools/lint/**'

mozterm:
    description: python/mozterm unit tests
    treeherder:
        symbol: py(term)
    run:
        mach: python-test --subsuite mozterm
    when:
        files-changed:
            - 'python/mozterm/**'

mozversioncontrol:
    description: python/mozversioncontrol unit tests
    treeherder:
        symbol: py(vcs)
    run:
        mach: python-test --subsuite mozversioncontrol
    when:
        files-changed:
            - 'python/mozversioncontrol/**'

reftest-harness:
    description: layout/tools/reftest unittests
    platform:
        - linux64/opt
        - linux64/debug
        - linux64-asan/opt
    require-build: true
    always-target: false
    treeherder:
        symbol: py(ref)
    worker:
        by-platform:
            linux64.*:
                docker-image: {in-tree: "desktop1604-test"}
                max-run-time: 3600
    run:
        using: run-task
        command: >
            source /builds/worker/scripts/xvfb.sh &&
            start_xvfb '1600x1200x24' 0 &&
            cd /builds/worker/checkouts/gecko &&
            ./mach python-test --subsuite reftest
    when:
        files-changed:
            - 'layout/tools/reftest/**'
            - 'testing/mozbase/moztest/moztest/selftest/**'
            - 'testing/mozharness/mozharness/base/log.py'
            - 'testing/mozharness/mozharness/mozilla/structuredlog.py'
            - 'testing/mozharness/mozharness/mozilla/testing/errors.py'

tryselect:
    description: tools/tryselect unit tests
    treeherder:
        symbol: py(try)
    run:
        mach: python-test --subsuite try
    when:
        files-changed:
            - 'tools/tryselect/**'