summaryrefslogtreecommitdiffstats
path: root/taskcluster/ci/webrender/kind.yml
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/ci/webrender/kind.yml')
-rw-r--r--taskcluster/ci/webrender/kind.yml605
1 files changed, 605 insertions, 0 deletions
diff --git a/taskcluster/ci/webrender/kind.yml b/taskcluster/ci/webrender/kind.yml
new file mode 100644
index 0000000000..7c783d2067
--- /dev/null
+++ b/taskcluster/ci/webrender/kind.yml
@@ -0,0 +1,605 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+---
+loader: gecko_taskgraph.loader.transform:loader
+
+kind-dependencies:
+ - toolchain
+ - build
+
+transforms:
+ - gecko_taskgraph.transforms.job:transforms
+ - gecko_taskgraph.transforms.task:transforms
+
+job-defaults:
+ attributes:
+ retrigger: true
+ run-on-projects: ['integration', 'release']
+ treeherder:
+ tier: 1
+ kind: other
+ worker:
+ max-run-time: 3600
+ env:
+ RUST_BACKTRACE: 'full'
+ RUSTFLAGS: '--deny warnings'
+ run:
+ sparse-profile: webrender
+
+jobs:
+ lint-tidy:
+ description: Runs linting checks on WebRender code
+ worker-type: b-linux-gcp
+ worker:
+ docker-image: {in-tree: webrender}
+ run:
+ using: run-task
+ cwd: '{checkout}/gfx/wr'
+ command: >-
+ servo-tidy
+ treeherder:
+ platform: linux64-qr/opt
+ symbol: WR(tidy)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+
+ linux64-release:
+ description: Runs release-mode WebRender CI tests on a Linux worker
+ worker-type: b-linux-gcp
+ worker:
+ docker-image: {in-tree: webrender}
+ fetches:
+ toolchain:
+ - linux64-rust
+ - wrench-deps
+ run:
+ using: run-task
+ command: >-
+ export PATH=$PATH:$MOZ_FETCHES_DIR/rustc/bin:${MOZ_FETCHES_DIR}/wrench-deps/meson &&
+ cd $HOME/checkouts/gecko/gfx/wr &&
+ mv $MOZ_FETCHES_DIR/wrench-deps/{vendor,.cargo} ./ &&
+ CARGOFLAGS="--verbose --frozen" ci-scripts/linux-release-tests.sh
+ treeherder:
+ platform: linux64-qr/opt
+ symbol: WR(wrench)
+ kind: other
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+
+ linux64-debug:
+ description: Runs debug-mode WebRender CI tests on a Linux worker
+ worker-type: b-linux-gcp
+ worker:
+ docker-image: {in-tree: webrender}
+ fetches:
+ toolchain:
+ - linux64-rust
+ - wrench-deps
+ run:
+ using: run-task
+ command: >-
+ export PATH=$PATH:$MOZ_FETCHES_DIR/rustc/bin:${MOZ_FETCHES_DIR}/wrench-deps/meson &&
+ cd $HOME/checkouts/gecko/gfx/wr &&
+ mv $MOZ_FETCHES_DIR/wrench-deps/{vendor,.cargo} ./ &&
+ CARGOFLAGS="--verbose --frozen" ci-scripts/linux-debug-tests.sh
+ treeherder:
+ platform: linux64-qr/debug
+ symbol: WR(wrench)
+ kind: other
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+
+ wrench-macos-build:
+ description: Cross compilation of wrench for macOS on Linux
+ worker-type: b-linux-gcp
+ worker:
+ docker-image: {in-tree: webrender}
+ chain-of-trust: true
+ artifacts:
+ - type: file
+ name: public/build/wrench-macos.tar.bz2
+ path: /builds/worker/artifacts/wrench-macos.tar.bz2
+ - type: file
+ name: public/build/wrench-macos-headless.tar.bz2
+ path: /builds/worker/artifacts/wrench-macos-headless.tar.bz2
+ dependencies:
+ macosx64-clang-14: toolchain-macosx64-clang-14-raw
+ fetches:
+ toolchain:
+ - linux64-rust-macos
+ - linux64-clang-14
+ - macosx64-sdk
+ - wrench-deps
+ macosx64-clang-14:
+ - artifact: clang.tar.zst
+ dest: clang-mac
+ run:
+ using: run-task
+ command: '$HOME/checkouts/gecko/taskcluster/scripts/misc/wrench-macos-build.sh'
+ treeherder:
+ platform: osx-cross/opt
+ symbol: WR(B)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'taskcluster/scripts/misc/wr-macos-cross-build-setup.sh'
+ - 'taskcluster/scripts/misc/wrench-macos-build.sh'
+
+ macos-release:
+ description: Runs release-mode WebRender CI tests on a macOS worker
+ worker-type: t-osx-1015-r8
+ worker:
+ # repo cloning has highly variable run time
+ max-run-time: 7200
+ env:
+ MOZ_FETCHES_DIR: 'checkouts/gecko/gfx/wr'
+ dependencies:
+ webrender-wrench-macos-build: webrender-wrench-macos-build
+ fetches:
+ webrender-wrench-macos-build:
+ - 'wrench-macos.tar.bz2'
+ - 'wrench-macos-headless.tar.bz2'
+ run:
+ using: run-task
+ cwd: '{checkout}/gfx/wr'
+ command: >-
+ export WRENCH_HEADLESS_TARGET=$PWD/wrench-macos-headless/ &&
+ export WRENCH_BINARY=$PWD/wrench-macos/bin/wrench &&
+ ci-scripts/macos-release-tests.sh
+ treeherder:
+ platform: macosx1015-64-qr/opt
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+
+ cargotest-macos-build:
+ description: Cross compilation of cargo tests for macOS on Linux
+ worker-type: b-linux-gcp
+ worker:
+ docker-image: {in-tree: webrender}
+ chain-of-trust: true
+ artifacts:
+ - type: file
+ name: public/build/cargo-test-binaries.tar.bz2
+ path: /builds/worker/artifacts/cargo-test-binaries.tar.bz2
+ fetches:
+ toolchain:
+ - linux64-rust-macos
+ - linux64-clang
+ - macosx64-sdk
+ - wrench-deps
+ run:
+ using: run-task
+ command: '$HOME/checkouts/gecko/taskcluster/scripts/misc/wr-cargotest-macos-build.sh'
+ treeherder:
+ platform: osx-cross/debug
+ symbol: WR(B)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'taskcluster/scripts/misc/wr-cargotest-macos-build.sh'
+ - 'taskcluster/scripts/misc/wr-macos-cross-build-setup.sh'
+
+ macos-debug:
+ description: Runs debug-mode WebRender CI tests on a macOS worker
+ worker-type: t-osx-1015-r8
+ worker:
+ max-run-time: 3600
+ env:
+ MOZ_FETCHES_DIR: 'checkouts/gecko/gfx/wr'
+ dependencies:
+ webrender-cargotest-macos-build: webrender-cargotest-macos-build
+ fetches:
+ webrender-cargotest-macos-build:
+ - 'cargo-test-binaries.tar.bz2'
+ run:
+ using: run-task
+ cwd: '{checkout}/gfx/wr'
+ command: >-
+ mv cargo-test-binaries target &&
+ cd target &&
+ for i in debug/deps/*; do $i; done
+ treeherder:
+ platform: macosx1015-64-qr/debug
+ symbol: WR(cargotest)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+
+ windows:
+ description: Runs WebRender CI tests on a Windows worker
+ worker-type: win11-64-2009-source
+ worker:
+ max-run-time: 5400
+ env:
+ NODE_OPTIONS: '--max_old_space_size=4096'
+ fetches:
+ toolchain:
+ - win64-rust
+ - vs
+ - wrench-deps
+ run:
+ using: run-task
+ use-caches: false
+ command: '$GECKO_PATH/taskcluster/scripts/misc/wrench-windows-tests.sh'
+ treeherder:
+ platform: windows11-64-2009-qr/release
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'build/win64/mozconfig.vs2019'
+ - 'gfx/wr/**'
+ - 'taskcluster/scripts/misc/wrench-windows-tests.sh'
+
+ wrench-android-debug:
+ description: Debug build of wrench for Android
+ attributes:
+ build_platform: android
+ worker-type: b-linux-gcp
+ worker:
+ max-run-time: 5400
+ docker-image: {in-tree: webrender}
+ artifacts:
+ - type: file
+ name: public/build/wrench-debug.apk
+ path: /builds/worker/checkouts/gecko/gfx/wr/target/debug/apk/wrench.apk
+ - type: file
+ name: public/build/reftests.tar.gz
+ path: /builds/worker/checkouts/gecko/gfx/wr/wrench/reftests.tar.gz
+ - type: file
+ name: public/build/mozdevice.tar.gz
+ path: /builds/worker/checkouts/gecko/testing/mozbase/mozdevice.tar.gz
+ run:
+ using: run-task
+ cwd: '{checkout}/gfx/wr/wrench'
+ command: >-
+ $GECKO_PATH/taskcluster/scripts/misc/wrench-android-build.sh debug &&
+ tar czf reftests.tar.gz reftests/ &&
+ cd $GECKO_PATH/testing/mozbase &&
+ tar czf mozdevice.tar.gz mozdevice/
+ fetches:
+ toolchain:
+ - android-gradle-dependencies
+ - android-ndk-linux
+ - android-sdk-linux
+ - android-system-image-x86_64-linux
+ - android-avd-x86_64-linux
+ - linux64-jdk
+ - linux64-rust-android
+ - wrench-deps
+ treeherder:
+ platform: android-em-7-0-x86/debug
+ symbol: WR(B)
+ when:
+ files-changed:
+ - 'build.gradle'
+ - 'gfx/wr/**'
+ - 'taskcluster/scripts/misc/wrench-android-build.sh'
+
+ wrench-android-release:
+ description: Release build of wrench for Android
+ attributes:
+ build_platform: android
+ worker-type: b-linux-gcp
+ worker:
+ max-run-time: 5400
+ docker-image: {in-tree: webrender}
+ artifacts:
+ - type: file
+ name: public/build/wrench-release.apk
+ path: /builds/worker/checkouts/gecko/gfx/wr/target/release/apk/wrench.apk
+ - type: file
+ name: public/build/reftests.tar.gz
+ path: /builds/worker/checkouts/gecko/gfx/wr/wrench/reftests.tar.gz
+ - type: file
+ name: public/build/mozdevice.tar.gz
+ path: /builds/worker/checkouts/gecko/testing/mozbase/mozdevice.tar.gz
+ run:
+ using: run-task
+ cwd: '{checkout}/gfx/wr/wrench'
+ command: >-
+ $GECKO_PATH/taskcluster/scripts/misc/wrench-android-build.sh release &&
+ tar czf reftests.tar.gz reftests/ &&
+ cd $GECKO_PATH/testing/mozbase &&
+ tar czf mozdevice.tar.gz mozdevice/
+ fetches:
+ toolchain:
+ - android-gradle-dependencies
+ - android-ndk-linux
+ - android-sdk-linux
+ - android-system-image-x86_64-linux
+ - android-avd-x86_64-linux
+ - linux64-jdk
+ - linux64-rust-android
+ - wrench-deps
+ treeherder:
+ platform: android-em-7-0-x86/opt
+ symbol: WR(B)
+ when:
+ files-changed:
+ - 'build.gradle'
+ - 'gfx/wr/**'
+ - 'taskcluster/scripts/misc/wrench-android-build.sh'
+
+ android-emulator-debug:
+ description: Run debug wrench reftests on Android emulator
+ attributes:
+ build_platform: android
+ worker-type: t-linux-kvm # privileged:true doesn't work on b-linux
+ worker:
+ max-run-time: 5400
+ docker-image: {in-tree: ubuntu1804-test}
+ privileged: true # for access to /dev/kvm for hw accel in the emulator
+ artifacts:
+ - type: directory
+ name: public/build/logs
+ path: /builds/worker/workspace/build/logs
+ env:
+ # need hard-coded URLs until bug 1551875 is fixed
+ TASKCLUSTER_ROOT_URL: 'https://taskcluster.net'
+ TASKCLUSTER_PROXY_URL: 'http://taskcluster'
+ MOZHARNESS_SCRIPT: android_wrench.py
+ MOZHARNESS_CONFIG: android/wrench.py
+ NEED_WINDOW_MANAGER: 'true'
+ dependencies:
+ webrender-wrench-android-debug: webrender-wrench-android-debug
+ fetches:
+ webrender-wrench-android-debug:
+ - 'wrench-debug.apk'
+ toolchain:
+ - android-sdk-linux
+ - android-system-image-x86_64-linux
+ - android-avd-x86_64-linux
+ - linux64-jdk
+ run:
+ using: run-task
+ tooltool-downloads: internal
+ command: >-
+ export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-debug.apk &&
+ export WRENCH_REFTESTS=$GECKO_PATH/gfx/wr/wrench/reftests &&
+ export MOZHARNESS_PATH=$GECKO_PATH/testing/mozharness &&
+ $GECKO_PATH/taskcluster/scripts/tester/test-linux.sh
+ treeherder:
+ platform: android-em-7-0-x86/debug
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'testing/mozharness/scripts/android_*.py'
+ - 'testing/mozharness/configs/android/*.py'
+
+ android-emulator-release:
+ description: Run release wrench reftests on Android emulator
+ attributes:
+ build_platform: android
+ worker-type: t-linux-kvm # privileged:true doesn't work on b-linux
+ worker:
+ max-run-time: 5400
+ docker-image: {in-tree: ubuntu1804-test}
+ privileged: true # for access to /dev/kvm for hw accel in the emulator
+ artifacts:
+ - type: directory
+ name: public/build/logs
+ path: /builds/worker/workspace/build/logs
+ env:
+ # need hard-coded URLs until bug 1551875 is fixed
+ TASKCLUSTER_ROOT_URL: 'https://taskcluster.net'
+ TASKCLUSTER_PROXY_URL: 'http://taskcluster'
+ MOZHARNESS_SCRIPT: android_wrench.py
+ MOZHARNESS_CONFIG: android/wrench.py
+ NEED_WINDOW_MANAGER: 'true'
+ dependencies:
+ webrender-wrench-android-release: webrender-wrench-android-release
+ fetches:
+ webrender-wrench-android-release:
+ - 'wrench-release.apk'
+ toolchain:
+ - android-sdk-linux
+ - android-system-image-x86_64-linux
+ - android-avd-x86_64-linux
+ - linux64-jdk
+ run:
+ using: run-task
+ tooltool-downloads: internal
+ command: >-
+ export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-release.apk &&
+ export WRENCH_REFTESTS=$GECKO_PATH/gfx/wr/wrench/reftests &&
+ export MOZHARNESS_PATH=$GECKO_PATH/testing/mozharness &&
+ $GECKO_PATH/taskcluster/scripts/tester/test-linux.sh
+ treeherder:
+ platform: android-em-7-0-x86/opt
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'testing/mozharness/scripts/android_*.py'
+ - 'testing/mozharness/configs/android/*.py'
+
+ android-hw-p5-debug:
+ description: Run debug wrench reftests on Android Pixel5
+ attributes:
+ build_platform: android
+ worker-type: t-bitbar-gw-unit-p5
+ worker:
+ max-run-time: 5400
+ artifacts:
+ - type: directory
+ name: public/build/logs
+ path: build/logs
+ env:
+ MOZHARNESS_SCRIPT: android_wrench.py
+ MOZHARNESS_CONFIG: android/wrench.py
+ MOZ_FETCHES_DIR: fetches
+ dependencies:
+ webrender-wrench-android-debug: webrender-wrench-android-debug
+ android-build: build-android-arm/debug
+ fetches:
+ webrender-wrench-android-debug:
+ - 'wrench-debug.apk'
+ - 'reftests.tar.gz'
+ - 'mozdevice.tar.gz'
+ android-build:
+ - artifact: 'mozharness.zip'
+ dest: 'mozharness'
+ run:
+ using: run-task
+ checkout: false
+ run-as-root: true
+ command: >-
+ export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-debug.apk &&
+ export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests &&
+ export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness &&
+ export PYTHONPATH=$MOZ_FETCHES_DIR/mozdevice:$PYTHONPATH &&
+ python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG}
+ treeherder:
+ platform: android-hw-p5-13-0-arm7/debug
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'testing/mozharness/scripts/android_*.py'
+ - 'testing/mozharness/configs/android/*.py'
+ - 'testing/mozbase/mozdevice/**'
+
+ android-hw-p5-opt:
+ description: Run opt wrench reftests on Android Pixel5
+ attributes:
+ build_platform: android
+ worker-type: t-bitbar-gw-unit-p5
+ worker:
+ max-run-time: 5400
+ artifacts:
+ - type: directory
+ name: public/build/logs
+ path: build/logs
+ env:
+ MOZHARNESS_SCRIPT: android_wrench.py
+ MOZHARNESS_CONFIG: android/wrench.py
+ MOZ_FETCHES_DIR: fetches
+ dependencies:
+ webrender-wrench-android-release: webrender-wrench-android-release
+ android-build: build-android-arm/opt
+ fetches:
+ webrender-wrench-android-release:
+ - 'wrench-release.apk'
+ - 'reftests.tar.gz'
+ - 'mozdevice.tar.gz'
+ android-build:
+ - artifact: 'mozharness.zip'
+ dest: 'mozharness'
+ run:
+ using: run-task
+ checkout: false
+ run-as-root: true
+ command: >-
+ export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-release.apk &&
+ export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests &&
+ export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness &&
+ export PYTHONPATH=$MOZ_FETCHES_DIR/mozdevice:$PYTHONPATH &&
+ python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG}
+ treeherder:
+ platform: android-hw-p5-13-0-arm7/opt
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'testing/mozharness/scripts/android_*.py'
+ - 'testing/mozharness/configs/android/*.py'
+ - 'testing/mozbase/mozdevice/**'
+
+ android-hw-a51-debug:
+ description: Run debug wrench reftests on Android Samsung Galaxy A51
+ attributes:
+ build_platform: android
+ worker-type: t-bitbar-gw-perf-a51
+ worker:
+ max-run-time: 5400
+ artifacts:
+ - type: directory
+ name: public/build/logs
+ path: build/logs
+ env:
+ MOZHARNESS_SCRIPT: android_wrench.py
+ MOZHARNESS_CONFIG: android/wrench.py
+ MOZ_FETCHES_DIR: fetches
+ dependencies:
+ webrender-wrench-android-debug: webrender-wrench-android-debug
+ android-build: build-android-arm/debug
+ fetches:
+ webrender-wrench-android-debug:
+ - 'wrench-debug.apk'
+ - 'reftests.tar.gz'
+ - 'mozdevice.tar.gz'
+ android-build:
+ - artifact: 'mozharness.zip'
+ dest: 'mozharness'
+ run:
+ using: run-task
+ checkout: false
+ run-as-root: true
+ command: >-
+ export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-debug.apk &&
+ export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests &&
+ export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness &&
+ export PYTHONPATH=$MOZ_FETCHES_DIR/mozdevice:$PYTHONPATH &&
+ python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG}
+ treeherder:
+ platform: android-hw-a51-11-0-arm7/debug
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'testing/mozharness/scripts/android_*.py'
+ - 'testing/mozharness/configs/android/*.py'
+ - 'testing/mozbase/mozdevice/**'
+
+ android-hw-a51-opt:
+ description: Run opt wrench reftests on Android Samsung Galaxy A51
+ attributes:
+ build_platform: android
+ worker-type: t-bitbar-gw-perf-a51
+ worker:
+ max-run-time: 5400
+ artifacts:
+ - type: directory
+ name: public/build/logs
+ path: build/logs
+ env:
+ MOZHARNESS_SCRIPT: android_wrench.py
+ MOZHARNESS_CONFIG: android/wrench.py
+ MOZ_FETCHES_DIR: fetches
+ dependencies:
+ webrender-wrench-android-release: webrender-wrench-android-release
+ android-build: build-android-arm/opt
+ fetches:
+ webrender-wrench-android-release:
+ - 'wrench-release.apk'
+ - 'reftests.tar.gz'
+ - 'mozdevice.tar.gz'
+ android-build:
+ - artifact: 'mozharness.zip'
+ dest: 'mozharness'
+ run:
+ using: run-task
+ checkout: false
+ run-as-root: true
+ command: >-
+ export WRENCH_APK=$MOZ_FETCHES_DIR/wrench-release.apk &&
+ export WRENCH_REFTESTS=$MOZ_FETCHES_DIR/reftests &&
+ export MOZHARNESS_PATH=$MOZ_FETCHES_DIR/mozharness &&
+ export PYTHONPATH=$MOZ_FETCHES_DIR/mozdevice:$PYTHONPATH &&
+ python3 ${MOZHARNESS_PATH}/scripts/${MOZHARNESS_SCRIPT} --config-file ${MOZHARNESS_PATH}/configs/${MOZHARNESS_CONFIG}
+ treeherder:
+ platform: android-hw-a51-11-0-arm7/opt
+ symbol: WR(wrench)
+ when:
+ files-changed:
+ - 'gfx/wr/**'
+ - 'testing/mozharness/scripts/android_*.py'
+ - 'testing/mozharness/configs/android/*.py'
+ - 'testing/mozbase/mozdevice/**'