Raise the priority of the release build task for WPT on macOS

… since other time-sensitive tasks depend on them.

Note: we need to be careful with task priorities,
especially in worker pools with limited capacity,
since they are absolute and can cause starvation:

https://docs.taskcluster.net/docs/manual/tasks/priority
This commit is contained in:
Simon Sapin 2019-11-18 10:39:04 +01:00
parent b19b821985
commit fe23add637
2 changed files with 6 additions and 2 deletions

View file

@ -608,10 +608,11 @@ def update_wpt():
)
def macos_release_build(args=""):
def macos_release_build(args="", priority=None):
return (
macos_build_task("Release build")
.with_treeherder("macOS x64", "Release")
.with_priority(priority)
.with_script("\n".join([
"./mach build --release --verbose " + args,
"./etc/ci/lockfile_changed.sh",
@ -627,7 +628,7 @@ def macos_release_build(args=""):
def macos_wpt():
build_task = macos_release_build("--with-debug-assertions")
build_task = macos_release_build("--with-debug-assertions", priority="high")
def macos_run_task(name):
task = macos_task(name).with_python2()
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile-gstreamer"])

View file

@ -144,6 +144,7 @@ class Task:
self.routes = []
self.extra = {}
self.treeherder_required = False
self.priority = None # Defaults to 'lowest'
# All `with_*` methods return `self`, so multiple method calls can be chained.
with_description = chaining(setattr, "description")
@ -153,6 +154,7 @@ class Task:
with_deadline_in = chaining(setattr, "deadline_in")
with_expires_in = chaining(setattr, "expires_in")
with_index_and_artifacts_expire_in = chaining(setattr, "index_and_artifacts_expire_in")
with_priority = chaining(setattr, "priority")
with_dependencies = chaining(append_to_attr, "dependencies")
with_scopes = chaining(append_to_attr, "scopes")
@ -248,6 +250,7 @@ class Task:
scopes=scopes,
routes=routes,
extra=self.extra,
priority=self.priority,
)
task_id = taskcluster.slugId()