aboutsummaryrefslogtreecommitdiffstats
path: root/etc/taskcluster/decision_task.py
diff options
context:
space:
mode:
Diffstat (limited to 'etc/taskcluster/decision_task.py')
-rw-r--r--etc/taskcluster/decision_task.py99
1 files changed, 72 insertions, 27 deletions
diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py
index 6abdd0d7e11..5be3deef1d3 100644
--- a/etc/taskcluster/decision_task.py
+++ b/etc/taskcluster/decision_task.py
@@ -50,6 +50,7 @@ def tasks(task_for):
android_arm32_release,
android_x86_wpt,
linux_wpt,
+ linux_wpt_layout_2020,
linux_release,
macos_wpt,
]
@@ -72,6 +73,7 @@ def tasks(task_for):
"try-magicleap": [magicleap_dev],
"try-arm": [windows_arm64],
"try-wpt": [linux_wpt],
+ "try-wpt-2020": [linux_wpt_layout_2020],
"try-wpt-mac": [macos_wpt],
"try-wpt-android": [android_x86_wpt],
"try-android": [
@@ -555,26 +557,6 @@ def linux_release():
.find_or_create("build.linux_x64_release" + CONFIG.task_id())
)
-def linux_wpt():
- release_build_task = (
- linux_build_task("Release build, with debug assertions")
- .with_treeherder("Linux x64", "Release+A")
- .with_script("""
- ./mach build --release --with-debug-assertions -p servo
- ./etc/ci/lockfile_changed.sh
- tar -czf /target.tar.gz \
- target/release/servo \
- target/release/build/osmesa-src-*/output \
- target/release/build/osmesa-src-*/out/lib/gallium
- """)
- .with_artifacts("/target.tar.gz")
- .find_or_create("build.linux_x64_release_w_assertions" + CONFIG.task_id())
- )
- def linux_run_task(name):
- return linux_task(name).with_dockerfile(dockerfile_path("run")).with_repo_bundle()
- wpt_chunks("Linux x64", linux_run_task, release_build_task, repo_dir="/repo",
- total_chunks=4, processes=12)
-
def macos_nightly():
return (
@@ -661,16 +643,73 @@ def macos_wpt():
)
+def linux_wpt():
+ linux_wpt_common(total_chunks=4, layout_2020=False)
+
+
+def linux_wpt_layout_2020():
+ linux_wpt_common(total_chunks=1, layout_2020=True)
+
+
+def linux_wpt_common(total_chunks, layout_2020):
+ if layout_2020:
+ name_prefix = "Layout 2020 "
+ build_args = "--with-layout-2020"
+ index_key_suffix = "_2020"
+ else:
+ name_prefix = ""
+ build_args = ""
+ index_key_suffix = ""
+ release_build_task = (
+ linux_build_task(name_prefix + "Release build, with debug assertions")
+ .with_treeherder("Linux x64", "Release+A")
+ .with_script("""
+ time ./mach rustc -V
+ time ./mach fetch
+ ./mach build --release --with-debug-assertions %s -p servo
+ ./etc/ci/lockfile_changed.sh
+ tar -czf /target.tar.gz \
+ target/release/servo \
+ target/release/build/osmesa-src-*/output \
+ target/release/build/osmesa-src-*/out/lib/gallium
+ sccache --show-stats
+ """ % build_args)
+ .with_artifacts("/target.tar.gz")
+ .find_or_create("build.linux_x64%s_release_w_assertions.%s" % (
+ index_key_suffix,
+ CONFIG.task_id(),
+ ))
+ )
+ def linux_run_task(name):
+ return linux_task(name).with_dockerfile(dockerfile_path("run")).with_repo_bundle()
+ wpt_chunks("Linux x64", linux_run_task, release_build_task, repo_dir="/repo",
+ processes=12, total_chunks=total_chunks, layout_2020=layout_2020)
+
+
def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
- repo_dir, chunks="all"):
+ repo_dir, chunks="all", layout_2020=False):
+ if layout_2020:
+ start = 1 # Skip the "extra" WPT testing, a.k.a. chunk 0
+ name_prefix = "Layout 2020 "
+ job_id_prefix = "2020-"
+ args = "--layout-2020"
+ else:
+ start = 0
+ name_prefix = ""
+ job_id_prefix = ""
+ args = ""
+
if chunks == "all":
- chunks = range(total_chunks + 1)
+ chunks = range(start, total_chunks + 1)
for this_chunk in chunks:
task = (
- make_chunk_task("WPT chunk {:0{width}} / {}".format(
- this_chunk, total_chunks, width=len(str(total_chunks)),
+ make_chunk_task("{}WPT chunk {:0{width}} / {}".format(
+ name_prefix,
+ this_chunk,
+ total_chunks,
+ width=len(str(total_chunks)),
))
- .with_treeherder(platform, "WPT-%s" % this_chunk)
+ .with_treeherder(platform, "%sWPT-%s" % (job_id_prefix, this_chunk))
.with_curl_artifact_script(build_task, "target.tar.gz")
.with_script("tar -xzf target.tar.gz")
.with_index_and_artifacts_expire_in(log_artifacts_expire_in)
@@ -679,6 +718,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
TOTAL_CHUNKS=str(total_chunks),
THIS_CHUNK=str(this_chunk),
PROCESSES=str(processes),
+ WPT_ARGS=args,
GST_DEBUG="3",
)
)
@@ -722,6 +762,7 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
task.with_script("""
./mach test-wpt \
--release \
+ $WPT_ARGS \
--processes $PROCESSES \
--total-chunks "$TOTAL_CHUNKS" \
--this-chunk "$THIS_CHUNK" \
@@ -742,8 +783,12 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
for word in script.split()
if word.endswith(".log")
])
- platform_id = platform.replace(" ", "_").lower()
- task.find_or_create("%s_wpt_%s.%s" % (platform_id, this_chunk, CONFIG.task_id()))
+ task.find_or_create("%s_%swpt_%s.%s" % (
+ platform.replace(" ", "_").lower(),
+ job_id_prefix.replace("-", "_"),
+ this_chunk,
+ CONFIG.task_id(),
+ ))
def daily_tasks_setup():