diff --git a/testing/web-platform/tests/.taskcluster.yml b/testing/web-platform/tests/.taskcluster.yml index 526fc13212e9..b1a8162db4b2 100644 --- a/testing/web-platform/tests/.taskcluster.yml +++ b/testing/web-platform/tests/.taskcluster.yml @@ -7,7 +7,7 @@ tasks: run_task: $if: 'tasks_for == "github-push"' then: - $if: 'event.ref in ["refs/heads/master", "refs/heads/epochs/daily", "refs/heads/epochs/weekly", "refs/heads/triggers/chrome_stable", "refs/heads/triggers/chrome_beta", "refs/heads/triggers/chrome_dev", "refs/heads/triggers/firefox_stable", "refs/heads/triggers/firefox_beta", "refs/heads/triggers/firefox_nightly", "refs/heads/triggers/webkitgtk_minibrowser_stable", "refs/heads/triggers/webkitgtk_minibrowser_nightly", "refs/heads/triggers/servo_nightly"]' + $if: 'event.ref in ["refs/heads/master", "refs/heads/epochs/daily", "refs/heads/epochs/weekly", "refs/heads/triggers/chrome_stable", "refs/heads/triggers/chrome_beta", "refs/heads/triggers/chrome_dev", "refs/heads/triggers/chrome_nightly", "refs/heads/triggers/firefox_stable", "refs/heads/triggers/firefox_beta", "refs/heads/triggers/firefox_nightly", "refs/heads/triggers/webkitgtk_minibrowser_stable", "refs/heads/triggers/webkitgtk_minibrowser_nightly", "refs/heads/triggers/servo_nightly"]' then: true else: false else: diff --git a/testing/web-platform/tests/tools/ci/run_tc.py b/testing/web-platform/tests/tools/ci/run_tc.py index a5a8ca7db29a..3a3b0d8090ba 100755 --- a/testing/web-platform/tests/tools/ci/run_tc.py +++ b/testing/web-platform/tests/tools/ci/run_tc.py @@ -141,7 +141,7 @@ def install_certificates(): def install_chrome(channel): - if channel in ("experimental", "dev", "nightly"): + if channel in ("experimental", "dev"): deb_archive = "google-chrome-unstable_current_amd64.deb" elif channel == "beta": deb_archive = "google-chrome-beta_current_amd64.deb" @@ -323,7 +323,10 @@ def setup_environment(args): if "chrome" in args.browser: assert args.channel is not None - install_chrome(args.channel) + # Chrome Nightly will be installed via `wpt run --install-browser` + # later in taskcluster-run.py. + if args.channel != "nightly": + install_chrome(args.channel) elif "webkitgtk_minibrowser" in args.browser: assert args.channel is not None install_webkitgtk(args.channel) diff --git a/testing/web-platform/tests/tools/ci/taskcluster-run.py b/testing/web-platform/tests/tools/ci/taskcluster-run.py index d228e21990a1..245ee7fa5925 100755 --- a/testing/web-platform/tests/tools/ci/taskcluster-run.py +++ b/testing/web-platform/tests/tools/ci/taskcluster-run.py @@ -8,19 +8,19 @@ import shutil import subprocess import sys -browser_specific_args = { - "servo": ["--install-browser", "--processes=12"] -} - -def get_browser_args(product): +def get_browser_args(product, channel): if product == "firefox": local_binary = os.path.expanduser(os.path.join("~", "build", "firefox", "firefox")) if os.path.exists(local_binary): return ["--binary=%s" % local_binary] print("WARNING: Local firefox binary not found") return ["--install-browser", "--install-webdriver"] - return browser_specific_args.get(product, []) + if product == "servo": + return ["--install-browser", "--processes=12"] + if product == "chrome" and channel == "nightly": + return ["--install-browser", "--install-webdriver"] + return [] def find_wptreport(args): @@ -43,7 +43,7 @@ def gzip_file(filename, delete_original=True): os.unlink(filename) -def main(product, commit_range, wpt_args): +def main(product, channel, commit_range, wpt_args): """Invoke the `wpt run` command according to the needs of the Taskcluster continuous integration service.""" @@ -75,7 +75,7 @@ def main(product, commit_range, wpt_args): "--no-headless", "--verify-log-full" ] - wpt_args += get_browser_args(product) + wpt_args += get_browser_args(product, channel) # Hack to run servo with one process only for wdspec if product == "servo" and "--test-type=wdspec" in wpt_args: @@ -107,6 +107,8 @@ if __name__ == "__main__": determine the list of test to execute""") parser.add_argument("product", action="store", help="Browser to run tests in") + parser.add_argument("channel", action="store", + help="Channel of the browser") parser.add_argument("wpt_args", nargs="*", help="Arguments to forward to `wpt run` command") main(**vars(parser.parse_args())) diff --git a/testing/web-platform/tests/tools/ci/tc/tasks/test.yml b/testing/web-platform/tests/tools/ci/tc/tasks/test.yml index 2fc11e0b27b8..b1534c9d230d 100644 --- a/testing/web-platform/tests/tools/ci/tc/tasks/test.yml +++ b/testing/web-platform/tests/tools/ci/tc/tasks/test.yml @@ -59,6 +59,7 @@ components: command: >- ./tools/ci/taskcluster-run.py ${vars.browser} + ${vars.channel} -- --channel=${vars.channel} --log-wptreport=../artifacts/wpt_report.json @@ -67,6 +68,7 @@ components: --this-chunk=${chunks.id} --total-chunks=${chunks.total} --test-type=${vars.suite} + trigger-master: trigger: branch: @@ -170,6 +172,13 @@ tasks: use: - trigger-daily - trigger-push + - vars: + # Chromium ToT + browser: chrome + channel: nightly + use: + - trigger-daily + - trigger-push - vars: browser: chrome channel: dev @@ -245,6 +254,13 @@ tasks: use: - trigger-daily - trigger-push + - vars: + # Chromium ToT + browser: chrome + channel: nightly + use: + - trigger-daily + - trigger-push - vars: browser: chrome channel: dev @@ -299,6 +315,7 @@ tasks: ./tools/ci/taskcluster-run.py --commit-range base_head ${vars.browser} + ${vars.channel} -- --channel=${vars.channel} --verify @@ -319,6 +336,7 @@ tasks: ./tools/ci/taskcluster-run.py --commit-range base_head ${vars.browser} + ${vars.channel} -- --channel=${vars.channel} --no-fail-on-unexpected @@ -341,6 +359,7 @@ tasks: ./tools/ci/taskcluster-run.py --commit-range task_head ${vars.browser} + ${vars.channel} -- --channel=${vars.channel} --no-fail-on-unexpected diff --git a/testing/web-platform/tests/tools/ci/tc/tests/test_valid.py b/testing/web-platform/tests/tools/ci/tc/tests/test_valid.py index 88ffdb295113..472f83f86a0f 100644 --- a/testing/web-platform/tests/tools/ci/tc/tests/test_valid.py +++ b/testing/web-platform/tests/tools/ci/tc/tests/test_valid.py @@ -128,7 +128,7 @@ def test_verify_payload(): 'wpt-firefox-nightly-print-reftest-1', 'wpt-chrome-dev-print-reftest-1', 'lint']), - ("pr_event.json", True, {".taskcluster.yml",".travis.yml","tools/ci/start.sh"}, + ("pr_event.json", True, {".taskcluster.yml", ".travis.yml", "tools/ci/start.sh"}, ['lint', 'tools/ unittests (Python 2)', 'tools/ unittests (Python 3.6)', @@ -171,6 +171,22 @@ def test_verify_payload(): 'wpt-firefox-stable-testharness-14', 'wpt-firefox-stable-testharness-15', 'wpt-firefox-stable-testharness-16', + 'wpt-chrome-nightly-testharness-1', + 'wpt-chrome-nightly-testharness-2', + 'wpt-chrome-nightly-testharness-3', + 'wpt-chrome-nightly-testharness-4', + 'wpt-chrome-nightly-testharness-5', + 'wpt-chrome-nightly-testharness-6', + 'wpt-chrome-nightly-testharness-7', + 'wpt-chrome-nightly-testharness-8', + 'wpt-chrome-nightly-testharness-9', + 'wpt-chrome-nightly-testharness-10', + 'wpt-chrome-nightly-testharness-11', + 'wpt-chrome-nightly-testharness-12', + 'wpt-chrome-nightly-testharness-13', + 'wpt-chrome-nightly-testharness-14', + 'wpt-chrome-nightly-testharness-15', + 'wpt-chrome-nightly-testharness-16', 'wpt-chrome-stable-testharness-1', 'wpt-chrome-stable-testharness-2', 'wpt-chrome-stable-testharness-3', @@ -224,6 +240,11 @@ def test_verify_payload(): 'wpt-firefox-stable-reftest-3', 'wpt-firefox-stable-reftest-4', 'wpt-firefox-stable-reftest-5', + 'wpt-chrome-nightly-reftest-1', + 'wpt-chrome-nightly-reftest-2', + 'wpt-chrome-nightly-reftest-3', + 'wpt-chrome-nightly-reftest-4', + 'wpt-chrome-nightly-reftest-5', 'wpt-chrome-stable-reftest-1', 'wpt-chrome-stable-reftest-2', 'wpt-chrome-stable-reftest-3', @@ -241,6 +262,8 @@ def test_verify_payload(): 'wpt-servo-nightly-reftest-5', 'wpt-firefox-stable-wdspec-1', 'wpt-firefox-stable-wdspec-2', + 'wpt-chrome-nightly-wdspec-1', + 'wpt-chrome-nightly-wdspec-2', 'wpt-chrome-stable-wdspec-1', 'wpt-chrome-stable-wdspec-2', 'wpt-webkitgtk_minibrowser-nightly-wdspec-1', @@ -248,11 +271,13 @@ def test_verify_payload(): 'wpt-servo-nightly-wdspec-1', 'wpt-servo-nightly-wdspec-2', 'wpt-firefox-stable-crashtest-1', + 'wpt-chrome-nightly-crashtest-1', 'wpt-chrome-stable-crashtest-1', 'wpt-webkitgtk_minibrowser-nightly-crashtest-1', 'wpt-servo-nightly-crashtest-1', 'wpt-firefox-stable-print-reftest-1', - 'wpt-chrome-stable-print-reftest-1',]) + 'wpt-chrome-nightly-print-reftest-1', + 'wpt-chrome-stable-print-reftest-1']) ]) def test_schedule_tasks(event_path, is_pr, files_changed, expected): with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(None, None, None)):