# 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 use-python: default 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: >- pushd /tmp && python3 -m pip install six && python3 -m pip install -e 'git+https://github.com/servo/servo.git@65a4d1646da46c37fe748add6dcf24b62ebb602a#egg=servo_tidy&subdirectory=python/tidy' && popd && 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.vs2022' - '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 - type: file name: public/build/six.tar.gz path: /builds/worker/checkouts/gecko/third_party/python/six.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/ && cd $GECKO_PATH/third_party/python && tar czf six.tar.gz six/ fetches: toolchain: - android-gradle-dependencies - android-ndk-linux - android-sdk-linux - android-system-image-x86_64-linux - android-avd-x86_64-linux - linux64-cargo-apk - 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 - type: file name: public/build/six.tar.gz path: /builds/worker/checkouts/gecko/third_party/python/six.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/ && cd $GECKO_PATH/third_party/python && tar czf six.tar.gz six/ fetches: toolchain: - android-gradle-dependencies - android-ndk-linux - android-sdk-linux - android-system-image-x86_64-linux - android-avd-x86_64-linux - linux64-cargo-apk - 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' PYTHON: "/builds/worker/checkouts/gecko/mach python" dependencies: webrender-wrench-android-debug: webrender-wrench-android-debug fetches: webrender-wrench-android-debug: - artifact: 'wrench-debug.apk' extract: false 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' PYTHON: "/builds/worker/checkouts/gecko/mach python" dependencies: webrender-wrench-android-release: webrender-wrench-android-release fetches: webrender-wrench-android-release: - artifact: 'wrench-release.apk' extract: false 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 PYTHONPATH: "fetches/mozdevice:fetches/six" dependencies: webrender-wrench-android-debug: webrender-wrench-android-debug android-build: build-android-arm/debug fetches: webrender-wrench-android-debug: - artifact: 'wrench-debug.apk' extract: false - 'reftests.tar.gz' - 'mozdevice.tar.gz' - 'six.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 && 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 PYTHONPATH: "fetches/mozdevice:fetches/six" dependencies: webrender-wrench-android-release: webrender-wrench-android-release android-build: build-android-arm/opt fetches: webrender-wrench-android-release: - artifact: 'wrench-release.apk' extract: false - 'reftests.tar.gz' - 'mozdevice.tar.gz' - 'six.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 && 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 PYTHONPATH: "fetches/mozdevice:fetches/six" dependencies: webrender-wrench-android-debug: webrender-wrench-android-debug android-build: build-android-arm/debug fetches: webrender-wrench-android-debug: - artifact: 'wrench-debug.apk' extract: false - 'reftests.tar.gz' - 'mozdevice.tar.gz' - 'six.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 && 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 PYTHONPATH: "fetches/mozdevice:fetches/six" dependencies: webrender-wrench-android-release: webrender-wrench-android-release android-build: build-android-arm/opt fetches: webrender-wrench-android-release: - artifact: 'wrench-release.apk' extract: false - 'reftests.tar.gz' - 'mozdevice.tar.gz' - 'six.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 && 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/**'