mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Add support for daily builds
https://tools.taskcluster.net/hooks/project-servo/daily
This commit is contained in:
parent
67794b6146
commit
947c01ea25
3 changed files with 40 additions and 6 deletions
|
@ -7,6 +7,10 @@ tasks:
|
||||||
then:
|
then:
|
||||||
$if: 'event.ref in ["refs/heads/auto", "refs/heads/try"]'
|
$if: 'event.ref in ["refs/heads/auto", "refs/heads/try"]'
|
||||||
then:
|
then:
|
||||||
|
|
||||||
|
# NOTE: when updating this consider whether the daily hook needs similar changes:
|
||||||
|
# https://tools.taskcluster.net/hooks/project-servo/daily
|
||||||
|
|
||||||
taskGroupId: {$eval: as_slugid("decision_task")}
|
taskGroupId: {$eval: as_slugid("decision_task")}
|
||||||
taskId: {$eval: as_slugid("decision_task")}
|
taskId: {$eval: as_slugid("decision_task")}
|
||||||
provisionerId: aws-provisioner-v1
|
provisionerId: aws-provisioner-v1
|
||||||
|
@ -14,7 +18,7 @@ tasks:
|
||||||
created: {$fromNow: ''}
|
created: {$fromNow: ''}
|
||||||
deadline: {$fromNow: '1 day'}
|
deadline: {$fromNow: '1 day'}
|
||||||
metadata:
|
metadata:
|
||||||
name: "Servo: decision task"
|
name: "Servo: GitHub push decision task"
|
||||||
description: ""
|
description: ""
|
||||||
owner: &task_owner ${event.pusher.name}@users.noreply.github.com
|
owner: &task_owner ${event.pusher.name}@users.noreply.github.com
|
||||||
source: &task_source ${event.compare}
|
source: &task_source ${event.compare}
|
||||||
|
@ -36,11 +40,13 @@ tasks:
|
||||||
GIT_URL: ${event.repository.clone_url}
|
GIT_URL: ${event.repository.clone_url}
|
||||||
GIT_REF: ${event.ref}
|
GIT_REF: ${event.ref}
|
||||||
GIT_SHA: ${event.after}
|
GIT_SHA: ${event.after}
|
||||||
|
TASK_FOR: ${tasks_for}
|
||||||
TASK_OWNER: *task_owner
|
TASK_OWNER: *task_owner
|
||||||
TASK_SOURCE: *task_source
|
TASK_SOURCE: *task_source
|
||||||
command:
|
command:
|
||||||
- /bin/bash
|
- /bin/bash
|
||||||
- '--login'
|
- '--login'
|
||||||
|
- '-e'
|
||||||
- '-c'
|
- '-c'
|
||||||
- >-
|
- >-
|
||||||
git init repo &&
|
git init repo &&
|
||||||
|
|
|
@ -4,14 +4,28 @@
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
|
import subprocess
|
||||||
from decisionlib import DecisionTask
|
from decisionlib import DecisionTask
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
linux_tidy_unit()
|
task_for = os.environ["TASK_FOR"]
|
||||||
# linux_wpt()
|
|
||||||
|
if task_for == "github-push":
|
||||||
|
linux_tidy_unit()
|
||||||
|
#linux_wpt()
|
||||||
|
|
||||||
|
# https://tools.taskcluster.net/hooks/project-servo/daily
|
||||||
|
elif task_for == "daily":
|
||||||
|
# Unlike when reacting to a GitHub event,
|
||||||
|
# the commit hash is not known until we clone the repository.
|
||||||
|
os.environ["GIT_SHA"] = \
|
||||||
|
subprocess.check_output(["git", "rev-parse", "HEAD"]).decode("utf8").strip()
|
||||||
|
with_rust_nightly()
|
||||||
|
|
||||||
|
else:
|
||||||
|
raise ValueError("Unrecognized $TASK_FOR value: %r", task_for)
|
||||||
|
|
||||||
|
|
||||||
build_artifacts_expiry = "1 week"
|
build_artifacts_expiry = "1 week"
|
||||||
|
@ -45,6 +59,18 @@ def linux_tidy_unit():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def with_rust_nightly():
|
||||||
|
return decision.create_task(
|
||||||
|
task_name="Linux x86_64: with Rust Nightly",
|
||||||
|
script="""
|
||||||
|
echo "nightly" > rust-toolchain
|
||||||
|
./mach build --dev
|
||||||
|
./mach test-unit
|
||||||
|
""",
|
||||||
|
**build_kwargs
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def linux_wpt():
|
def linux_wpt():
|
||||||
release_build_task = linux_release_build()
|
release_build_task = linux_release_build()
|
||||||
total_chunks = 2
|
total_chunks = 2
|
||||||
|
|
|
@ -15,6 +15,7 @@ Run the decision task with fake Taskcluster APIs, to catch Python errors before
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import collections
|
||||||
from unittest.mock import MagicMock
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +31,8 @@ class Index:
|
||||||
raise TaskclusterRestFailure
|
raise TaskclusterRestFailure
|
||||||
|
|
||||||
|
|
||||||
Queue = stringDate = fromNow = slugId = os.environ = MagicMock()
|
Queue = stringDate = fromNow = slugId = MagicMock()
|
||||||
|
os.environ = collections.defaultdict(str, TASK_FOR="github-push")
|
||||||
sys.modules["taskcluster"] = sys.modules[__name__]
|
sys.modules["taskcluster"] = sys.modules[__name__]
|
||||||
sys.dont_write_bytecode = True
|
sys.dont_write_bytecode = True
|
||||||
exec(open("decision-task.py").read())
|
exec(open(os.path.join(os.path.dirname(__file__), "decision-task.py")).read())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue