Bug 1508828 - Add a task to run standalone WebRender CI scripts on Windows. r=glandium,jrmuizel

Differential Revision: https://phabricator.services.mozilla.com/D15412

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Kartikaya Gupta 2019-01-08 14:15:30 +00:00
Родитель b28ebd54d3
Коммит 684b20393f
3 изменённых файлов: 114 добавлений и 1 удалений

Просмотреть файл

@ -0,0 +1,26 @@
[
{
"version": "Visual Studio 2017 15.8.4 / SDK 10.0.17134.0",
"digest": "ecf1e03f6f98f86775059a43f9e7dc7e326f6643d7c08962d9f614e4f5a65b1ca63fa1cfeb0f1a3c2474bf0d4318dda960b378beb2a44ecf8a91111207f4ece5",
"size": 349626009,
"algorithm": "sha512",
"filename": "vs2017_15.8.4.zip",
"unpack": true
},
{
"version": "CMake 3.6.2 repack",
"size": 19832889,
"digest": "39b0508b60f655969d1b54c76753b14b5b2e92dab58613c835aed798a6aeb9077a7df78aebc011c2c753661fdc15007d3353c0c8773a53148380e2ec02afb629",
"algorithm": "sha512",
"filename": "cmake362.zip",
"unpack": true
},
{
"version": "Ninja 1.7.1",
"size": 184821,
"digest": "e4f9a1ae624a2630e75264ba37d396d9c7407d6e6aea3763056210ba6e1387908bd31cf4037a6a3661a418e86c4d2761e0c333e6a3bd0d66549d2b0d72d3f43b",
"algorithm": "sha512",
"filename": "ninja171.zip",
"unpack": true
}
]

Просмотреть файл

@ -19,7 +19,6 @@ job-defaults:
kind: other
worker:
max-run-time: 1800
docker-image: {in-tree: webrender}
env:
RUST_BACKTRACE: 'full'
RUSTFLAGS: '--deny warnings'
@ -28,6 +27,8 @@ jobs:
lint-tidy:
description: Runs linting checks on WebRender code
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: webrender}
run:
using: run-task
command: >-
@ -43,6 +44,8 @@ jobs:
linux-release:
description: Runs release-mode WebRender CI tests on a Linux worker
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: webrender}
toolchains:
- linux64-rust
- wrench-deps
@ -66,6 +69,8 @@ jobs:
linux-debug:
description: Runs debug-mode WebRender CI tests on a Linux worker
worker-type: aws-provisioner-v1/gecko-{level}-b-linux
worker:
docker-image: {in-tree: webrender}
toolchains:
- linux64-rust
- wrench-deps
@ -85,3 +90,27 @@ jobs:
when:
files-changed:
- 'gfx/wr/**'
windows:
description: Runs WebRender CI tests on a Windows worker
worker-type: aws-provisioner-v1/gecko-t-win10-64
worker:
max-run-time: 5400
env:
TOOLTOOL_MANIFEST: 'browser/config/tooltool-manifests/win64/webrender.manifest'
toolchains:
- win64-rust
- wrench-deps
run:
using: run-task
command: '$GECKO_PATH/taskcluster/scripts/misc/wrench-windows-tests.sh'
treeherder:
platform: windows10-64-qr/release
symbol: WR(wrench)
when:
files-changed:
- 'build/win64/mozconfig.vs2017'
- 'browser/config/tooltool-manifests/win64/webrender.manifest'
- 'gfx/wr/**'
- 'taskcluster/scripts/misc/tooltool-download.sh'
- 'taskcluster/scripts/misc/wrench-windows-tests.sh'

Просмотреть файл

@ -0,0 +1,58 @@
#!/bin/bash
set -x -e -v
# This script runs the windows CI scripts for standalone WebRender. The CI
# scripts build WebRender in various "standalone" (without Gecko)
# configurations and also run WebRender's reftest suite using the `wrench`
# tool in the WebRender repository.
# The builds involved require a number of dependencies to be available,
# which is all handled below.
cd $GECKO_PATH
# This will download the rustc, cmake, ninja, MSVC, and wrench-deps artifacts.
WORKSPACE="$PWD/../../" taskcluster/scripts/misc/tooltool-download.sh
export PATH=$PATH:$PWD/rustc/bin:$PWD/cmake/bin:$PWD/ninja/bin
# We will be sourcing mozconfig files, which end up calling mk_add_options with
# various settings. We only need the variable settings they create along the
# way. Define mk_add_options as empty so the variables are defined but nothing
# else happens.
# This is adapted from the start of js/src/devtools/automation/winbuildenv.sh
# which does a similar thing.
mk_add_options() {
:
}
export topsrcdir=$PWD
. $topsrcdir/build/win64/mozconfig.vs2017
# In the msys bash that we're running in, environment variables containing paths
# will *sometimes* get converted to windows format on their own, but it doesn't
# happen consistently. See bug 1508828 around comment 9 onwards for some details.
# To ensure we consistently convert the INCLUDE and LIB variables that MSVC
# needs for building stuff, we do it here explicitly.
convert_path_to_win() {
echo $1 |
sed -e 's#:#\n#g' | # split path components into separate lines
sed -e 's#^/\(.\)/#\1:/#' | # replace first path component (if one letter) with equivalent drive letter
sed -e 's#/#\\#g' | # convert all forward slashes to backslashes
paste -s -d ';' # glue the lines back together
}
export INCLUDE=$(convert_path_to_win "$INCLUDE")
export LIB=$(convert_path_to_win "$LIB")
# Move the wrench-deps vendored crates into place
mv wrench-deps/{vendor,.cargo} gfx/wr
cd gfx/wr
# This is needed for the WebRender standalone reftests
powershell.exe 'iex (Get-Content -Raw ci-scripts\set-screenresolution.ps1); Set-ScreenResolution 1920 1080'
# Run the CI scripts
export CARGOFLAGS='--verbose --frozen'
export FREETYPE_CMAKE_GENERATOR=Ninja
cmd.exe /c 'ci-scripts\windows-tests.cmd'
cmd.exe /c 'ci-scripts\windows-pathfinder.cmd'