aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2021-05-23 11:10:52 -0400
committerJosh Matthews <josh@joshmatthews.net>2021-05-23 13:39:08 -0400
commitb391e3aa57feb10c37044657e78bec65063248ad (patch)
tree03a0d3c93e2739d03a7f57a4dbaa77792114e858
parenta82b268be0ee7cdcee26d53c853dbf447dd71d91 (diff)
downloadservo-b391e3aa57feb10c37044657e78bec65063248ad.tar.gz
servo-b391e3aa57feb10c37044657e78bec65063248ad.zip
Remove last mac jobs from taskcluster.nightlies
-rw-r--r--etc/ci/workflow.mako12
-rw-r--r--etc/taskcluster/decision_task.py167
-rw-r--r--etc/taskcluster/decisionlib.py41
3 files changed, 10 insertions, 210 deletions
diff --git a/etc/ci/workflow.mako b/etc/ci/workflow.mako
index 8c2e34e720c..650df49c131 100644
--- a/etc/ci/workflow.mako
+++ b/etc/ci/workflow.mako
@@ -1,11 +1,9 @@
name: CI
on:
- # Triggers the workflow on push or pull request events but only for the master branch
+ # Triggers the workflow on push events but only for the master branch
push:
- branches: [ "master", "github-actions-dev", "auto", "try", "try-linux", "try-mac", "try-windows", "try-wpt", "linux-wpt-tests"]
- pull_request:
- branches: [ "master", "github-actions-dev" ]
+ branches: [ "auto", "try", "try-linux", "try-mac", "try-windows", "try-wpt"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
@@ -63,6 +61,12 @@ jobs:
python3 ./mach build --release
- name: Smoketest
run: python3 ./mach smoketest
+ - name: Unit tests
+ run: python3 ./mach test-unit --release
+ - name: Test package
+ run: python3 ./mach package --release
+ - name: Package smoketest
+ run: ./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg
- name: Package binary
run: gtar -czf target.tar.gz target/release/servo target/release/*.dylib resources
- name: Archive binary
diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py
index 5ee2a4ddfb1..ac23f297789 100644
--- a/etc/taskcluster/decision_task.py
+++ b/etc/taskcluster/decision_task.py
@@ -36,7 +36,6 @@ def tasks(task_for):
windows_unit,
windows_arm64,
windows_uwp_x64,
- macos_unit,
linux_release,
]
by_branch_name = {
@@ -53,7 +52,7 @@ def tasks(task_for):
# The "try-*" keys match those in `servo_try_choosers` in Homu’s config:
# https://github.com/servo/saltfs/blob/master/homu/map.jinja
- "try-mac": [macos_unit],
+ "try-mac": [],
"try-linux": [linux_tidy_unit, linux_docs_check, linux_release],
"try-windows": [windows_unit, windows_arm64, windows_uwp_x64],
"try-arm": [windows_arm64],
@@ -89,10 +88,6 @@ def tasks(task_for):
# https://tools.taskcluster.net/hooks/project-servo/daily
elif task_for == "daily":
daily_tasks_setup()
- with_rust_nightly()
- linux_nightly()
- windows_nightly()
- macos_nightly()
update_wpt()
uwp_nightly()
@@ -119,7 +114,6 @@ linux_build_env = {
# https://github.com/servo/servo/issues/24714#issuecomment-552951519
"SCCACHE_MAX_FRAME_LENGTH": str(100 * 1024 * 1024), # 100 MiB
}
-macos_build_env = {}
windows_build_env = {
"x86_64": {
"GSTREAMER_1_0_ROOT_X86_64": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86_64\\",
@@ -269,39 +263,6 @@ def layout_2020_regressions_report():
.create()
)
-def macos_unit():
- return (
- macos_build_task("Dev build + unit tests")
- .with_treeherder("macOS x64", "Unit")
- .with_script("""
- python3 ./mach build --dev --verbose
- python3 ./mach test-unit
- python3 ./mach package --dev
- ./etc/ci/macos_package_smoketest.sh target/debug/servo-tech-demo.dmg
- ./etc/ci/lockfile_changed.sh
- """)
- .find_or_create("macos_unit." + CONFIG.tree_hash())
- )
-
-
-def with_rust_nightly():
- modified_build_env = dict(build_env)
- flags = modified_build_env.pop("RUSTFLAGS").split(" ")
- flags.remove("-Dwarnings")
- if flags: # pragma: no cover
- modified_build_env["RUSTFLAGS"] = " ".join(flags)
-
- return (
- linux_build_task("with Rust Nightly", build_env=modified_build_env)
- .with_treeherder("Linux x64", "RustNightly")
- .with_script("""
- echo "nightly" > rust-toolchain
- python3 ./mach build --dev
- python3 ./mach test-unit
- """)
- .create()
- )
-
appx_artifact = '/'.join([
'repo',
@@ -397,39 +358,6 @@ def windows_unit(cached=True, rdp=False):
return task.create()
-def windows_nightly(rdp=False):
- return (
- windows_build_task("Nightly build and upload", rdp=rdp)
- .with_treeherder("Windows x64", "Nightly")
- .with_features("taskclusterProxy")
- .with_scopes("secrets:get:project/servo/s3-upload-credentials")
- .with_script("python mach fetch",
- "python mach build --release",
- "python mach package --release",
- "python mach upload-nightly windows-msvc --secret-from-taskcluster")
- .with_artifacts("repo/target/release/msi/Servo.exe",
- "repo/target/release/msi/Servo.zip")
- .find_or_create("build.windows_x64_nightly." + CONFIG.tree_hash())
- )
-
-
-def linux_nightly():
- return (
- linux_build_task("Nightly build and upload")
- .with_treeherder("Linux x64", "Nightly")
- .with_features("taskclusterProxy")
- .with_scopes("secrets:get:project/servo/s3-upload-credentials")
- # Not reusing the build made for WPT because it has debug assertions
- .with_script(
- "python3 ./mach build --release",
- "python3 ./mach package --release",
- "python3 ./mach upload-nightly linux --secret-from-taskcluster",
- )
- .with_artifacts("/repo/target/release/servo-tech-demo.tar.gz")
- .find_or_create("build.linux_x64_nightly" + CONFIG.tree_hash())
- )
-
-
def linux_release():
return (
linux_build_task("Release build")
@@ -442,26 +370,6 @@ def linux_release():
)
-def macos_nightly():
- return (
- macos_build_task("Nightly build and upload")
- .with_treeherder("macOS x64", "Nightly")
- .with_features("taskclusterProxy")
- .with_scopes(
- "secrets:get:project/servo/s3-upload-credentials",
- "secrets:get:project/servo/github-homebrew-token",
- )
- .with_script(
- "python3 ./mach build --release",
- "python3 ./mach package --release",
- "./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg",
- "python3 ./mach upload-nightly mac --secret-from-taskcluster",
- )
- .with_artifacts("repo/target/release/servo-tech-demo.dmg")
- .find_or_create("build.mac_x64_nightly." + CONFIG.tree_hash())
- )
-
-
def update_wpt():
build_task = linux_release_build_with_debug_assertions(layout_2020=False)
return (
@@ -486,24 +394,6 @@ def update_wpt():
)
-def macos_release_build_with_debug_assertions(priority=None):
- return (
- macos_build_task("Release build, with debug assertions")
- .with_treeherder("macOS x64", "Release+A")
- .with_priority(priority)
- .with_script("\n".join([
- "python3 ./mach build --release --verbose --with-debug-assertions",
- "./etc/ci/lockfile_changed.sh",
- "tar -czf target.tar.gz" +
- " target/release/servo" +
- " target/release/*.dylib" +
- " resources",
- ]))
- .with_artifacts("repo/target.tar.gz")
- .find_or_create("build.macos_x64_release_w_assertions." + CONFIG.tree_hash())
- ) # pragma: no cover
-
-
def linux_release_build_with_debug_assertions(layout_2020):
if layout_2020:
name_prefix = "Layout 2020 " # pragma: no cover
@@ -568,14 +458,6 @@ def windows_task(name):
)
-def macos_task(name):
- return (
- decisionlib.MacOsGenericWorkerTask(name)
- .with_worker_type(CONFIG.macos_worker_type)
- .with_treeherder_required()
- )
-
-
def linux_build_task(name, *, build_env=build_env):
task = (
linux_task(name)
@@ -654,52 +536,6 @@ def with_homebrew(task, brewfiles):
return task
-def macos_build_task(name):
- build_task = (
- macos_task(name)
- # Stray processes eating CPU can slow things down:
- # https://github.com/servo/servo/issues/24735
- .with_max_run_time_minutes(60 * 2)
- .with_env(**build_env, **unix_build_env, **macos_build_env)
- .with_repo_bundle(alternate_object_dir="/var/cache/servo.git/objects")
- .with_python3()
- .with_rustup()
- .with_index_and_artifacts_expire_in(build_artifacts_expire_in)
- # Debugging for surprising generic-worker behaviour
- .with_early_script("ls")
- .with_script("ls target || true")
- )
- return (
- with_homebrew(build_task, [
- "etc/taskcluster/macos/Brewfile",
- "etc/taskcluster/macos/Brewfile-build",
- ])
- .with_script("""
- export OPENSSL_INCLUDE_DIR="$(brew --prefix openssl)/include"
- export OPENSSL_LIB_DIR="$(brew --prefix openssl)/lib"
- export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig/"
- export PKG_CONFIG_PATH="$(brew --prefix zlib)/lib/pkgconfig/:$PKG_CONFIG_PATH"
- """)
-
- .with_directory_mount(
- "https://github.com/mozilla/sccache/releases/download/"
- "0.2.7/sccache-0.2.7-x86_64-apple-darwin.tar.gz",
- sha256="f86412abbbcce2d3f23e7d33305469198949f5cf807e6c3258c9e1885b4cb57f",
- path="sccache",
- )
- # Early script in order to run with the initial $PWD
- .with_early_script("""
- export PATH="$PWD/sccache/sccache-0.2.7-x86_64-apple-darwin:$PATH"
- """)
- # sccache binaries requires OpenSSL 1.1 and are not compatible with 1.0.
- # "Late" script in order to run after Homebrew is installed.
- .with_script("""
- time brew install openssl@1.1
- export DYLD_LIBRARY_PATH="$HOME/homebrew/opt/openssl@1.1/lib"
- """)
- )
-
-
CONFIG.task_name_template = "Servo: %s"
CONFIG.docker_images_expire_in = build_dependencies_artifacts_expire_in
CONFIG.repacked_msi_files_expire_in = build_dependencies_artifacts_expire_in
@@ -708,7 +544,6 @@ CONFIG.default_provisioner_id = "proj-servo"
CONFIG.docker_image_build_worker_type = "docker"
CONFIG.windows_worker_type = "win2016"
-CONFIG.macos_worker_type = "macos"
if __name__ == "__main__": # pragma: no cover
main(task_for=os.environ["TASK_FOR"])
diff --git a/etc/taskcluster/decisionlib.py b/etc/taskcluster/decisionlib.py
index dbcf11536ce..22d9a2f22a0 100644
--- a/etc/taskcluster/decisionlib.py
+++ b/etc/taskcluster/decisionlib.py
@@ -28,7 +28,7 @@ import taskcluster
# Public API
__all__ = [
"CONFIG", "SHARED", "Task", "DockerWorkerTask",
- "GenericWorkerTask", "WindowsGenericWorkerTask", "MacOsGenericWorkerTask",
+ "GenericWorkerTask", "WindowsGenericWorkerTask",
"make_repo_bundle",
]
@@ -673,45 +673,6 @@ class UnixTaskMixin(Task):
))
-class MacOsGenericWorkerTask(UnixTaskMixin, GenericWorkerTask):
- """
- Task definition for a `generic-worker` task running on macOS.
-
- Scripts are interpreted with `bash`.
- """
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.scripts = []
-
- with_script = chaining(append_to_attr, "scripts")
- with_early_script = chaining(prepend_to_attr, "scripts")
-
- def build_command(self):
- # generic-worker accepts multiple commands, but unlike on Windows
- # the current directory and environment variables
- # are not preserved across commands on macOS.
- # So concatenate scripts and use a single `bash` command instead.
- return [
- [
- "/bin/bash", "--login", "-x", "-e", "-o", "pipefail", "-c",
- deindent("\n".join(self.scripts))
- ]
- ] # pragma: no cover
-
- def with_python3(self):
- return self.with_early_script("""
- python3 -m ensurepip --user
- python3 -m pip install --user virtualenv
- """)
-
- def with_rustup(self):
- return self.with_early_script("""
- export PATH="$HOME/.cargo/bin:$PATH"
- which rustup || curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
- rustup self update
- """)
-
-
class DockerWorkerTask(UnixTaskMixin, Task):
"""
Task definition for a worker type that runs the `generic-worker` implementation.