Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Do not merge] Sync WPT with upstream (04-12-2019), from Linux #25086

Closed
Closed
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
The table of contents is too big for display.

Always

Just for now

@@ -67,7 +67,7 @@ function cleanup() {
# Build Servo and run the full WPT testsuite, saving the results to a log file.
function unsafe_run_tests() {
# Run the full testsuite and record the new test results.
./mach test-wpt --release --processes 6 --log-raw "${1}" \
./mach test-wpt --release --processes 12 --log-raw "${1}" \
--always-succeed || return 1

# Run the bluetooth testsuite, which uses the webdriver test harness.
@@ -122,7 +122,7 @@ function unsafe_open_pull_request() {
BODY+="r? @servo-wpt-sync\n"
cat <<EOF >prdata.json || return 4
{
"title": "Sync WPT with upstream (${CURRENT_DATE})",
"title": "[Do not merge] Sync WPT with upstream (${CURRENT_DATE}), from Linux",
"head": "${WPT_SYNC_USER}:${REMOTE_BRANCH_NAME}",
"base": "master",
"body": "${BODY}",
@@ -136,11 +136,11 @@ EOF
--data @prdata.json \
https://api.github.com/repos/servo/servo/pulls) || return 5

echo "${OPEN_PR_RESPONSE}" | \
jq '.review_comments_url' | \
sed 's/pulls/issues/' | \
xargs curl -H "Authorization: token ${WPT_SYNC_TOKEN}" \
--data "{\"body\":\"@bors-servo r+\"}" || return 6
# echo "${OPEN_PR_RESPONSE}" | \
# jq '.review_comments_url' | \
# sed 's/pulls/issues/' | \
# xargs curl -H "Authorization: token ${WPT_SYNC_TOKEN}" \
# --data "{\"body\":\"@bors-servo r+\"}" || return 6
}

function pull_from_upstream() {
@@ -105,14 +105,14 @@ def tasks(task_for):
# https://tools.taskcluster.net/hooks/project-servo/daily
elif task_for == "daily":
daily_tasks_setup()
with_rust_nightly()
linux_nightly()
android_nightly()
windows_nightly()
macos_nightly()
# with_rust_nightly()
# linux_nightly()
# android_nightly()
# windows_nightly()
# macos_nightly()
update_wpt()
magicleap_nightly()
uwp_nightly()
# magicleap_nightly()
# uwp_nightly()


# These are disabled in a "real" decision task,
@@ -579,28 +579,23 @@ def macos_nightly():


def update_wpt():
build_task = macos_release_build_with_debug_assertions()
update_task = (
macos_task("WPT update")
.with_python2()
.with_treeherder("macOS x64", "WPT update")
build_task = "Q5L9V-WHSCa8LkMqs86Sog"# linux_release_build_with_debug_assertions(layout_2020=False)
return (
linux_task("WPT update")
.with_treeherder("Linux x64", "WPT update")
.with_dockerfile(dockerfile_path("run"))
.with_features("taskclusterProxy")
.with_scopes("secrets:get:project/servo/wpt-sync")
.with_index_and_artifacts_expire_in(log_artifacts_expire_in)
.with_max_run_time_minutes(8 * 60)
# Not using the bundle, pushing the new changes to the git remote requires a full repo.
.with_repo(alternate_object_dir="/var/cache/servo.git/objects")
)
return (
with_homebrew(update_task, [
"etc/taskcluster/macos/Brewfile-wpt-update",
"etc/taskcluster/macos/Brewfile",
])
.with_repo()
.with_curl_artifact_script(build_task, "target.tar.gz")
.with_script("""
export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig/"
apt-get install --no-install-recommends -y python3 jq
tar -xzf target.tar.gz
./etc/ci/update-wpt-checkout fetch-and-update-expectations
# Use `cat` to force wptrunner’s non-interactive mode
./etc/ci/update-wpt-checkout fetch-and-update-expectations | cat
./etc/ci/update-wpt-checkout open-pr
./etc/ci/update-wpt-checkout cleanup
""")
@@ -627,32 +622,7 @@ def macos_release_build_with_debug_assertions(priority=None):
)


def macos_wpt():
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
build_task = macos_release_build_with_debug_assertions(priority=priority)
def macos_run_task(name):
task = macos_task(name).with_python2() \
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
wpt_chunks(
"macOS x64",
macos_run_task,
build_task,
repo_dir="repo",
total_chunks=30,
processes=4,
)


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):
def linux_release_build_with_debug_assertions(layout_2020):
if layout_2020:
name_prefix = "Layout 2020 "
build_args = "--with-layout-2020"
@@ -661,7 +631,7 @@ def linux_wpt_common(total_chunks, layout_2020):
name_prefix = ""
build_args = ""
index_key_suffix = ""
release_build_task = (
return (
linux_build_task(name_prefix + "Release build, with debug assertions")
.with_treeherder("Linux x64", "Release+A")
.with_script("""
@@ -681,6 +651,35 @@ def linux_wpt_common(total_chunks, layout_2020):
CONFIG.task_id(),
))
)


def macos_wpt():
priority = "high" if CONFIG.git_ref == "refs/heads/auto" else None
build_task = macos_release_build_with_debug_assertions(priority=priority)
def macos_run_task(name):
task = macos_task(name).with_python2() \
.with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
return with_homebrew(task, ["etc/taskcluster/macos/Brewfile"])
wpt_chunks(
"macOS x64",
macos_run_task,
build_task,
repo_dir="repo",
total_chunks=30,
processes=4,
)


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):
release_build_task = linux_release_build_with_debug_assertions(layout_2020)
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",
@@ -795,27 +794,27 @@ def wpt_chunks(platform, make_chunk_task, build_task, total_chunks, processes,
def daily_tasks_setup():
# ':' is not accepted in an index namepspace:
# https://docs.taskcluster.net/docs/reference/core/taskcluster-index/references/api
now = SHARED.now.strftime("%Y-%m-%d_%H-%M-%S")
index_path = "%s.daily.%s" % (CONFIG.index_prefix, now)
# Index this task manually rather than with a route,
# so that it is indexed even if it fails.
SHARED.index_service.insertTask(index_path, {
"taskId": CONFIG.decision_task_id,
"rank": 0,
"data": {},
"expires": SHARED.from_now_json(log_artifacts_expire_in),
})
# now = SHARED.now.strftime("%Y-%m-%d_%H-%M-%S")
# index_path = "%s.daily.%s" % (CONFIG.index_prefix, now)
# # Index this task manually rather than with a route,
# # so that it is indexed even if it fails.
# SHARED.index_service.insertTask(index_path, {
# "taskId": CONFIG.decision_task_id,
# "rank": 0,
# "data": {},
# "expires": SHARED.from_now_json(log_artifacts_expire_in),
# })

# Unlike when reacting to a GitHub push event,
# the commit hash is not known until we clone the repository.
CONFIG.git_sha_is_current_head()

# On failure, notify a few people on IRC
# https://docs.taskcluster.net/docs/reference/core/taskcluster-notify/docs/usage
notify_route = "notify.irc-channel.#servo.on-failed"
CONFIG.routes_for_all_subtasks.append(notify_route)
CONFIG.scopes_for_all_subtasks.append("queue:route:" + notify_route)
CONFIG.task_name_template = "Servo daily: %s. On failure, ping: " + ping_on_daily_task_failure
# notify_route = "notify.irc-channel.#servo.on-failed"
# CONFIG.routes_for_all_subtasks.append(notify_route)
# CONFIG.scopes_for_all_subtasks.append("queue:route:" + notify_route)
# CONFIG.task_name_template = "Servo daily: %s. On failure, ping: " + ping_on_daily_task_failure


def dockerfile_path(name):
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.