Auto merge of #22435 - servo:tc-wpt-linux, r=jdm

Move Linux WPT from Buildbot to Taskcluster

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22435)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-12-12 16:58:12 -05:00 committed by GitHub
commit ef8be44e46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 65 deletions

View file

@ -96,40 +96,6 @@ mac-rel-intermittent:
- env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
- ./etc/ci/check_intermittents.sh --log-raw intermittents.log - ./etc/ci/check_intermittents.sh --log-raw intermittents.log
linux-rel-wpt:
env:
CCACHE: sccache
RUSTC_WRAPPER: sccache
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 --with-debug-assertions -p servo
- ./mach test-wpt-failure
- ./mach test-wpt --release --processes 24 --total-chunks 2 --this-chunk 1 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log --always-succeed
- ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default
- ./mach test-wpt --release --binary-arg=--multiprocess --processes 24 --log-raw test-wpt-mp.log --log-errorsummary wpt-mp-errorsummary.log eventsource
- ./mach test-wpt --release --product=servodriver --headless tests/wpt/mozilla/tests/mozilla/DOMParser.html tests/wpt/mozilla/tests/css/per_glyph_font_fallback_a.html tests/wpt/mozilla/tests/css/img_simple.html tests/wpt/mozilla/tests/mozilla/secure.https.html
- ./etc/ci/clean_build_artifacts.sh
linux-rel-css:
env:
CCACHE: sccache
RUSTC_WRAPPER: sccache
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 --with-debug-assertions -p servo
- ./mach test-wpt --release --processes 24 --total-chunks 2 --this-chunk 2 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log --always-succeed
- ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default
- bash ./etc/ci/lockfile_changed.sh
- ./etc/ci/clean_build_artifacts.sh
linux-nightly: linux-nightly:
env: env:
CC: gcc-5 CC: gcc-5
@ -277,3 +243,5 @@ mac-dev-unit: []
windows-msvc-dev: [] windows-msvc-dev: []
android: [] android: []
android-x86: [] android-x86: []
linux-rel-wpt: []
linux-rel-css: []

View file

@ -13,8 +13,6 @@ def main(task_for):
# FIXME https://github.com/servo/servo/issues/22325 implement these: # FIXME https://github.com/servo/servo/issues/22325 implement these:
macos_wpt = magicleap_dev = linux_arm32_dev = linux_arm64_dev = \ macos_wpt = magicleap_dev = linux_arm32_dev = linux_arm64_dev = \
android_arm32_dev_from_macos = lambda: None android_arm32_dev_from_macos = lambda: None
# FIXME still buggy:
linux_wpt = lambda: None # Shadows the existing top-level function
all_tests = [ all_tests = [
linux_tidy_unit_docs, linux_tidy_unit_docs,
@ -293,19 +291,21 @@ def windows_release():
def linux_wpt(): def linux_wpt():
release_build_task = linux_release_build() release_build_task = linux_release_build(with_debug_assertions=True)
total_chunks = 2 total_chunks = 2
for i in range(total_chunks): for i in range(total_chunks):
this_chunk = i + 1 this_chunk = i + 1
wpt_chunk(release_build_task, total_chunks, this_chunk) wpt_chunk(release_build_task, total_chunks, this_chunk)
def linux_release_build(): def linux_release_build(with_debug_assertions=False):
a = with_debug_assertions
return ( return (
linux_build_task("Release build") linux_build_task("Release build" + ", with debug assertions" if a else "")
.with_treeherder("Linux x64", "Release") .with_treeherder("Linux x64", "Release" + "+A" if a else "")
.with_env(BUILD_FLAGS="--with-debug-assertions" if a else "")
.with_script(""" .with_script("""
./mach build --release --with-debug-assertions -p servo ./mach build --release $BUILD_FLAGS -p servo
./etc/ci/lockfile_changed.sh ./etc/ci/lockfile_changed.sh
tar -czf /target.tar.gz \ tar -czf /target.tar.gz \
target/release/servo \ target/release/servo \
@ -313,7 +313,9 @@ def linux_release_build():
target/release/build/osmesa-src-*/out/lib/gallium target/release/build/osmesa-src-*/out/lib/gallium
""") """)
.with_artifacts("/target.tar.gz") .with_artifacts("/target.tar.gz")
.find_or_create("build.linux_x64_release." + CONFIG.git_sha) .find_or_create(
"build.linux_x64_release%s.%s" % ("_assertions" if a else "", CONFIG.git_sha)
)
) )
@ -328,43 +330,45 @@ def wpt_chunk(release_build_task, total_chunks, this_chunk):
.with_index_and_artifacts_expire_in(log_artifacts_expire_in) .with_index_and_artifacts_expire_in(log_artifacts_expire_in)
.with_max_run_time_minutes(60) .with_max_run_time_minutes(60)
.with_env(TOTAL_CHUNKS=total_chunks, THIS_CHUNK=this_chunk) .with_env(TOTAL_CHUNKS=total_chunks, THIS_CHUNK=this_chunk)
.with_script("""
./mach test-wpt \
--release \
--processes 24 \
--total-chunks "$TOTAL_CHUNKS" \
--this-chunk "$THIS_CHUNK" \
--log-raw test-wpt.log \
--log-errorsummary wpt-errorsummary.log \
--always-succeed
./mach filter-intermittents\
wpt-errorsummary.log \
--log-intermittents intermittents.log \
--log-filteredsummary filtered-wpt-errorsummary.log \
--tracker-api default
""")
# FIXME: --reporter-api default
# IndexError: list index out of range
# File "/repo/python/servo/testing_commands.py", line 533, in filter_intermittents
# pull_request = int(last_merge.split(' ')[4][1:])
) )
if this_chunk == 1: if this_chunk == 1:
task.name += " + extra" task.name += " + extra"
task.extra["treeherder"]["symbol"] += "+" task.extra["treeherder"]["symbol"] += "+"
task.with_script(""" task.with_script("""
./mach test-wpt-failure time ./mach test-wpt-failure
./mach test-wpt --release --binary-arg=--multiprocess --processes 24 \ time ./mach test-wpt --release --binary-arg=--multiprocess --processes 24 \
--log-raw test-wpt-mp.log \ --log-raw test-wpt-mp.log \
--log-errorsummary wpt-mp-errorsummary.log \ --log-errorsummary wpt-mp-errorsummary.log \
eventsource eventsource
time ./mach test-wpt --release --product=servodriver --headless \
tests/wpt/mozilla/tests/mozilla/DOMParser.html \
tests/wpt/mozilla/tests/css/per_glyph_font_fallback_a.html \
tests/wpt/mozilla/tests/css/img_simple.html \
tests/wpt/mozilla/tests/mozilla/secure.https.html
""") """)
task.with_script("""
./mach test-wpt \
--release \
--processes 24 \
--total-chunks "$TOTAL_CHUNKS" \
--this-chunk "$THIS_CHUNK" \
--log-raw test-wpt.log \
--log-errorsummary wpt-errorsummary.log \
--always-succeed
./mach filter-intermittents\
wpt-errorsummary.log \
--log-intermittents intermittents.log \
--log-filteredsummary filtered-wpt-errorsummary.log \
--tracker-api default \
--reporter-api default
""")
task.with_artifacts(*[ task.with_artifacts(*[
"/repo/" + word "/repo/" + word
for script in task.scripts for script in task.scripts
for word in script.split() for word in script.split()
if word.endswith(".log") if word.endswith(".log")
]) ])
task.create() return task.create()
def daily_tasks_setup(): def daily_tasks_setup():

View file

@ -7,3 +7,4 @@ RUN apt-get install -qy --no-install-recommends \
libdbus-1-3 \ libdbus-1-3 \
libgstreamer-plugins-bad1.0-0 \ libgstreamer-plugins-bad1.0-0 \
gstreamer1.0-plugins-good gstreamer1.0-plugins-good

View file

@ -543,7 +543,7 @@ class MachCommands(CommandBase):
reported = set() reported = set()
proc = subprocess.Popen( proc = subprocess.Popen(
["git", "log", "--merges", "--oneline", "-1"], ["git", "log", "--oneline", "-1"],
stdout=subprocess.PIPE) stdout=subprocess.PIPE)
(last_merge, _) = proc.communicate() (last_merge, _) = proc.communicate()