Source code

Revision control

Copy as Markdown

Other Tools

components:
wpt-base:
provisionerId: proj-wpt
workerType: ci
schedulerId: taskcluster-github
deadline: "24 hours"
image: ghcr.io/web-platform-tests/wpt:1
maxRunTime: 7200
artifacts:
public/results:
path: /home/test/artifacts
type: directory
extra:
github:
customCheckRun:
textArtifactName: public/results/checkrun.md
wpt-testharness:
chunks: 16
maxRunTime: 10800
vars:
test-type: testharness
wpt-reftest:
chunks: 6
vars:
test-type: reftest
wpt-print-reftest:
chunks: 1
vars:
test-type: print-reftest
wpt-wdspec:
chunks: 2
vars:
test-type: wdspec
wpt-crashtest:
chunks: 1
vars:
test-type: crashtest
run-options:
options:
xvfb: true
oom-killer: true
hosts: true
install-certificates: true
wpt-run:
name: wpt-${vars.browser}-${vars.channel}-${vars.suite}-${chunks.id}
options:
browser:
- ${vars.browser}
channel: ${vars.channel}
command: >-
./tools/ci/taskcluster-run.py
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--log-wptreport=../artifacts/wpt_report.json
--log-wptscreenshot=../artifacts/wpt_screenshot.txt
--no-fail-on-unexpected
--this-chunk=${chunks.id}
--total-chunks=${chunks.total}
--test-type=${vars.suite}
trigger-master:
trigger:
branch:
- master
trigger-push:
trigger:
branch:
- triggers/${vars.browser}_${vars.channel}
trigger-daily:
trigger:
branch:
- epochs/daily
trigger-weekly:
trigger:
branch:
- epochs/weekly
trigger-pr:
trigger:
pull-request:
browser-firefox:
depends-on:
- download-firefox-${vars.channel}
download-artifacts:
- task: download-firefox-${vars.channel}
glob: public/results/firefox-${vars.channel}.*
dest: build/
extract: true
browser-webkitgtk_minibrowser: {}
browser-chrome: {}
browser-chromium: {}
browser-servo: {}
browser-firefox_android:
privileged: true
scopes:
- "docker-worker:capability:privileged"
chunks-override:
testharness: 30
tox-python3_8:
env:
TOXENV: py38
PY_COLORS: "0"
install:
- python3.8
- python3.8-distutils
- python3.8-dev
- python3.8-venv
tox-python3_12:
env:
TOXENV: py312
PY_COLORS: "0"
install:
- python3.12
- python3.12-dev
- python3.12-venv
tests-affected:
options:
browser:
- ${vars.browser}
channel: ${vars.channel}
schedule-if:
run-job:
- affected_tests
tasks:
# The scheduling order of tasks is NOT determined by the order in which they
# are defined, but by their dependencies (depends-on).
# Run full suites on push
- $map:
for:
- vars:
suite: testharness
- vars:
suite: reftest
- vars:
suite: wdspec
- vars:
suite: crashtest
do:
$map:
for:
- vars:
browser: firefox
channel: nightly
use:
- trigger-master
- trigger-push
- vars:
browser: firefox
channel: beta
use:
- trigger-weekly
- trigger-push
- vars:
browser: firefox
channel: stable
use:
- trigger-daily
- trigger-push
- vars:
# Chromium ToT
browser: chromium
channel: nightly
use:
- trigger-daily
- trigger-push
- vars:
browser: chrome
channel: canary
use:
- trigger-master
- trigger-push
- vars:
browser: chrome
channel: dev
use:
- trigger-weekly
- trigger-push
- vars:
browser: chrome
channel: beta
use:
- trigger-weekly
- trigger-push
- vars:
browser: chrome
channel: stable
use:
- trigger-daily
- trigger-push
- vars:
browser: webkitgtk_minibrowser
channel: nightly
use:
- trigger-daily
- trigger-push
- vars:
browser: webkitgtk_minibrowser
channel: stable
use:
- trigger-weekly
- trigger-push
- vars:
browser: webkitgtk_minibrowser
channel: beta
use:
- trigger-weekly
- trigger-push
- vars:
browser: servo
channel: nightly
use:
- trigger-daily
- trigger-push
- vars:
browser: firefox_android
channel: nightly
use:
- trigger-daily
- trigger-push
do:
- ${vars.browser}-${vars.channel}-${vars.suite}:
use:
- wpt-base
- run-options
- wpt-run
- browser-${vars.browser}
- wpt-${vars.suite}
description: >-
A subset of WPT's "${vars.suite}" tests (chunk number ${chunks.id}
of ${chunks.total}), run in the ${vars.channel} release of
${vars.browser}.
# print-reftest are currently only supported by Chrome and Firefox.
- $map:
for:
- vars:
suite: print-reftest
do:
$map:
for:
- vars:
browser: firefox
channel: nightly
use:
- trigger-master
- trigger-push
- vars:
browser: firefox
channel: beta
use:
- trigger-weekly
- trigger-push
- vars:
browser: firefox
channel: stable
use:
- trigger-daily
- trigger-push
- vars:
# Chromium ToT
browser: chromium
channel: nightly
use:
- trigger-daily
- trigger-push
- vars:
browser: chrome
channel: canary
use:
- trigger-master
- trigger-push
- vars:
browser: chrome
channel: dev
use:
- trigger-weekly
- trigger-push
- vars:
browser: chrome
channel: beta
use:
- trigger-weekly
- trigger-push
- vars:
browser: chrome
channel: stable
use:
- trigger-daily
- trigger-push
do:
- ${vars.browser}-${vars.channel}-${vars.suite}:
use:
- wpt-base
- run-options
- wpt-run
- browser-${vars.browser}
- wpt-${vars.suite}
description: >-
A subset of WPT's "${vars.suite}" tests (chunk number ${chunks.id}
of ${chunks.total}), run in the ${vars.channel} release of
${vars.browser}.
- $map:
for:
- vars:
browser: firefox
channel: nightly
stability-exclude-users:
- moz-wptsync-bot
required: true
- vars:
browser: chrome
channel: dev
stability-exclude-users:
- chromium-wpt-export-bot
required: false
do:
- wpt-${vars.browser}-${vars.channel}-stability:
use:
- wpt-base
- run-options
- browser-${vars.browser}
- trigger-pr
- tests-affected
description: >-
Verify that all tests affected by a pull request are stable
when executed in ${vars.browser}.
command: >-
./tools/ci/taskcluster-run.py
--commit-range base_head
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--verify
--verify-no-chaos-mode
--verify-repeat-loop=0
--verify-repeat-restart=10
--github-checks-text-file="/home/test/artifacts/checkrun.md"
exclude-users: ${vars.stability-exclude-users}
required: ${vars.required}
- wpt-${vars.browser}-${vars.channel}-results:
use:
- wpt-base
- run-options
- browser-${vars.browser}
- trigger-pr
- tests-affected
description: >-
Collect results for all tests affected by a pull request in
${vars.browser}.
command: >-
./tools/ci/taskcluster-run.py
--commit-range base_head
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--no-fail-on-unexpected
--log-wptreport=../artifacts/wpt_report.json
--log-wptscreenshot=../artifacts/wpt_screenshot.txt
- wpt-${vars.browser}-${vars.channel}-results-without-changes:
use:
- wpt-base
- run-options
- browser-${vars.browser}
- trigger-pr
- tests-affected
options:
checkout: base_head
description: >-
Collect results for all tests affected by a pull request in
${vars.browser} but without the changes in the PR.
command: >-
./tools/ci/taskcluster-run.py
--commit-range task_head
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--no-fail-on-unexpected
--log-wptreport=../artifacts/wpt_report.json
--log-wptscreenshot=../artifacts/wpt_screenshot.txt
- $map:
for:
- vars:
channel: nightly
- vars:
channel: beta
- vars:
channel: stable
do:
download-firefox-${vars.channel}:
use:
- wpt-base
command: "./wpt install --download-only --destination /home/test/artifacts/ --channel=${vars.channel} --rename=firefox-${vars.channel} firefox browser"
- lint:
use:
- wpt-base
- trigger-master
- trigger-pr
description: >-
Lint for wpt-specific requirements
command: "./wpt lint --all --github-checks-text-file=/home/test/artifacts/checkrun.md"
- update-built:
use:
- wpt-base
- trigger-pr
schedule-if:
run-job:
- update_built
command: "./tools/ci/ci_built_diff.sh"
- tools/ unittests (Python 3.8):
description: >-
Unit tests for tools running under Python 3.8, excluding wptrunner
use:
- wpt-base
- trigger-pr
- tox-python3_8
command: ./tools/ci/ci_tools_unittest.sh
env:
HYPOTHESIS_PROFILE: ci
schedule-if:
run-job:
- tools_unittest
- tools/ unittests (Python 3.12):
description: >-
Unit tests for tools running under Python 3.12, excluding wptrunner
use:
- wpt-base
- trigger-pr
- tox-python3_12
command: ./tools/ci/ci_tools_unittest.sh
env:
HYPOTHESIS_PROFILE: ci
schedule-if:
run-job:
- tools_unittest
- tools/ integration tests (Python 3.8):
description: >-
Integration tests for tools running under Python 3.8
use:
- wpt-base
- trigger-pr
- tox-python3_8
command: ./tools/ci/ci_tools_integration_test.sh
install:
- libnss3-tools
options:
oom-killer: true
browser:
- firefox
- chrome
channel: experimental
xvfb: true
hosts: true
schedule-if:
run-job:
- wpt_integration
- tools/ integration tests (Python 3.12):
description: >-
Integration tests for tools running under Python 3.12
use:
- wpt-base
- trigger-pr
- tox-python3_12
command: ./tools/ci/ci_tools_integration_test.sh
install:
- libnss3-tools
options:
oom-killer: true
browser:
- firefox
- chrome
channel: experimental
xvfb: true
hosts: true
schedule-if:
run-job:
- wpt_integration
- resources/ tests (Python 3.8):
description: >-
Tests for testharness.js and other files in resources/ under Python 3.8
use:
- wpt-base
- trigger-pr
- tox-python3_8
command: ./tools/ci/ci_resources_unittest.sh
install:
- libnss3-tools
options:
browser:
- firefox
xvfb: true
hosts: true
schedule-if:
run-job:
- resources_unittest
- resources/ tests (Python 3.12):
description: >-
Tests for testharness.js and other files in resources/ under Python 3.12
use:
- wpt-base
- trigger-pr
- tox-python3_12
command: ./tools/ci/ci_resources_unittest.sh
install:
- libnss3-tools
options:
browser:
- firefox
xvfb: true
hosts: true
schedule-if:
run-job:
- resources_unittest
- infrastructure/ tests:
description: >-
Smoketests for wptrunner
vars:
channel: nightly
use:
- wpt-base
- trigger-pr
- browser-firefox
- browser-firefox_android
command: ./tools/ci/ci_wptrunner_infrastructure.sh
install:
- python3-pip
- libnss3-tools
- libappindicator1
- fonts-liberation
options:
oom-killer: true
browser:
- firefox
- chrome
- firefox_android
channel: experimental
xvfb: true
hosts: false
schedule-if:
run-job:
- wptrunner_infrastructure
# Note: even though sink-task does not have `depends-on`, it depends on all
# other tasks (dynamically added by tools/ci/tc/decision.py).
- sink-task:
description: >-
Sink task for all other tasks; indicates success
use:
- wpt-base
- trigger-pr
command: "./wpt tc-sink-task --github-checks-text-file=/home/test/artifacts/checkrun.md"
requires: all-resolved