From 3e4e095513cf2f9d8e61f9c1efc8837ad807afb7 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 9 May 2019 19:48:36 -0400 Subject: [PATCH 1/6] Run performance tests during nightly taskcluster jobs. --- etc/ci/buildbot_steps.yml | 16 +----------- etc/taskcluster/decision_task.py | 42 +++++++++++++++++++++++++++----- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/etc/ci/buildbot_steps.yml b/etc/ci/buildbot_steps.yml index 7ee31c790c21..394a09254e78 100644 --- a/etc/ci/buildbot_steps.yml +++ b/etc/ci/buildbot_steps.yml @@ -109,21 +109,6 @@ linux-rel-css: - bash ./etc/ci/lockfile_changed.sh - ./etc/ci/clean_build_artifacts.sh -linux-nightly: - env: - CC: gcc-5 - CXX: g++-5 - commands: - - ./mach clean-nightlies --keep 3 --force - - ./mach clean-cargo-cache --keep 3 --force - - ./etc/ci/clean_build_artifacts.sh - - ./mach build --release -p servo - - ./mach test-perf - - python3 ./etc/ci/performance/download_buildbot_timings.py --verbose - - aws s3 sync --size-only --acl public-read ./etc/ci/performance/output s3://servo-perf - - rm -rf ./python/_virtualenv - - ./etc/ci/clean_build_artifacts.sh - android-mac: commands: - ./mach clean-nightlies --keep 3 --force @@ -231,3 +216,4 @@ mac-rel-wpt1: [] android-nightly: [] windows-msvc-nightly: [] mac-nightly: [] +linux-nightly: [] \ No newline at end of file diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index e5b16c5b9520..9eec3aaa1f96 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -406,7 +406,7 @@ def windows_nightly(): def linux_nightly(): - return ( + build_task = ( linux_build_task("Nightly build and upload") .with_treeherder("Linux x64", "Nightly") .with_features("taskclusterProxy") @@ -418,8 +418,40 @@ def linux_nightly(): "./mach upload-nightly linux --secret-from-taskcluster", ) .with_artifacts("/repo/target/release/servo-tech-demo.tar.gz") + ) + build_task = ( + with_linux_test_artifact(build_task) .find_or_create("build.linux_x64_nightly" + CONFIG.git_sha) ) + return ( + linux_task("Performance test") + .with_dockerfile(dockerfile_path("run")) + .with_treeherder("Linux x64", "Perf") + .with_repo() + .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) + .with_max_run_time_minutes(90) + .with_scopes("secrets:get:project/servo/s3-upload-credentials") + .with_script(""" + ./mach test-perf + python3 ./etc/ci/performance/download_buildbot_timings.py --verbose + aws s3 sync --size-only --acl public-read ./etc/ci/performance/output s3://servo-perf + """) + ) + + +def with_linux_test_artifact(task): + return ( + task + .with_script(""" + 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") + ) def linux_wpt(): @@ -429,12 +461,10 @@ def linux_wpt(): .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") + ) + release_build_task = ( + with_linux_test_artifact(release_build_task) .find_or_create("build.linux_x64_release~assertions" + CONFIG.git_sha) ) def linux_run_task(name): From 89642f30a02b8fbc4c5e25442cb2af5045fd0d0e Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 9 May 2019 19:49:49 -0400 Subject: [PATCH 2/6] tmp --- etc/taskcluster/decision_task.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index 9eec3aaa1f96..78adf2c2c9b2 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -63,7 +63,7 @@ def main(task_for): "try-arm": [linux_arm32_dev, linux_arm64_dev], "try-wpt": [linux_wpt], "try-wpt-mac": [macos_wpt], - "try-wpt-android": [android_x86_wpt], + "try-wpt-android": [android_x86_wpt, linux_nightly], "try-android": [ android_arm32_dev, android_arm32_dev_from_macos, @@ -414,8 +414,8 @@ def linux_nightly(): # Not reusing the build made for WPT because it has debug assertions .with_script( "./mach build --release", - "./mach package --release", - "./mach upload-nightly linux --secret-from-taskcluster", + #"./mach package --release", + #"./mach upload-nightly linux --secret-from-taskcluster", ) .with_artifacts("/repo/target/release/servo-tech-demo.tar.gz") ) From 4e1960804c9958d371aa5acb28a0395085e13282 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 9 May 2019 20:09:09 -0400 Subject: [PATCH 3/6] fixup! Run performance tests during nightly taskcluster jobs. --- etc/taskcluster/decision_task.py | 1 + 1 file changed, 1 insertion(+) diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index 78adf2c2c9b2..c37f98681717 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -438,6 +438,7 @@ def linux_nightly(): python3 ./etc/ci/performance/download_buildbot_timings.py --verbose aws s3 sync --size-only --acl public-read ./etc/ci/performance/output s3://servo-perf """) + .find_or_create("perf.linux_x64_nightly" + CONFIG.git_sha) ) From a5931748d220adf9a85a1f0655b65ae27493bdaa Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 9 May 2019 20:09:19 -0400 Subject: [PATCH 4/6] fixup! tmp --- etc/taskcluster/decision_task.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index c37f98681717..e6cebc74fc69 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -63,7 +63,8 @@ def main(task_for): "try-arm": [linux_arm32_dev, linux_arm64_dev], "try-wpt": [linux_wpt], "try-wpt-mac": [macos_wpt], - "try-wpt-android": [android_x86_wpt, linux_nightly], + "try-wpt-android": [#android_x86_wpt, + linux_nightly], "try-android": [ android_arm32_dev, android_arm32_dev_from_macos, From 9ada92fc4bb80eecbff701d998c9590509345609 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 10 May 2019 08:29:58 -0400 Subject: [PATCH 5/6] tmp --- etc/taskcluster/decision_task.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index e6cebc74fc69..8fe320bd7658 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -411,7 +411,7 @@ def linux_nightly(): linux_build_task("Nightly build and upload") .with_treeherder("Linux x64", "Nightly") .with_features("taskclusterProxy") - .with_scopes("secrets:get:project/servo/s3-upload-credentials") + #.with_scopes("secrets:get:project/servo/s3-upload-credentials") # Not reusing the build made for WPT because it has debug assertions .with_script( "./mach build --release", @@ -433,12 +433,12 @@ def linux_nightly(): .with_script("tar -xzf target.tar.gz") .with_index_and_artifacts_expire_in(log_artifacts_expire_in) .with_max_run_time_minutes(90) - .with_scopes("secrets:get:project/servo/s3-upload-credentials") + #.with_scopes("secrets:get:project/servo/s3-upload-credentials") .with_script(""" ./mach test-perf python3 ./etc/ci/performance/download_buildbot_timings.py --verbose - aws s3 sync --size-only --acl public-read ./etc/ci/performance/output s3://servo-perf """) + # aws s3 sync --size-only --acl public-read ./etc/ci/performance/output s3://servo-perf .find_or_create("perf.linux_x64_nightly" + CONFIG.git_sha) ) From f1773cba36552cf8b0db3cfbe23d896a4c758138 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 10 May 2019 08:49:45 -0400 Subject: [PATCH 6/6] Add wget and unzip to run docker image. --- etc/taskcluster/docker/run.dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/etc/taskcluster/docker/run.dockerfile b/etc/taskcluster/docker/run.dockerfile index 67e048f8e49a..dd4803bf016a 100644 --- a/etc/taskcluster/docker/run.dockerfile +++ b/etc/taskcluster/docker/run.dockerfile @@ -6,5 +6,7 @@ RUN apt-get install -qy --no-install-recommends \ libssl1.0.0 \ libdbus-1-3 \ libgstreamer-plugins-bad1.0-0 \ - gstreamer1.0-plugins-good + gstreamer1.0-plugins-good \ + wget \ + unzip