env:
  RUSTFLAGS: -Dwarnings
  CARGO_INCREMENTAL: "0"

mac-rel-wpt1:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach run -r -o output.png
  - ./mach test-wpt-failure
  - ./mach test-wpt --release --processes 4 --total-chunks 6 --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 8 --log-raw test-wpt-mp.log --log-errorsummary wpt-mp-errorsummary.log eventsource
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh

mac-rel-wpt2:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach test-wpt --release --processes 4 --total-chunks 6 --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
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build-geckolib --release

mac-rel-wpt3:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach test-wpt --release --processes 4 --total-chunks 6 --this-chunk 3 --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

mac-rel-wpt4:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach test-wpt --release --processes 4 --total-chunks 6 --this-chunk 4 --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 --pref dom.servoparser.async_html_tokenizer.enabled --processes=8 --log-raw test-async-parsing.log --log-errorsummary async-parsing-errorsummary.log --always-succeed domparsing html/syntax html/dom/documents html/dom/dynamic-markup-insertion
  - ./mach filter-intermittents async-parsing-errorsummary.log --log-intermittents async-parsing-intermittents.log --log-filteredsummary filtered-async-parsing-errorsummary.log --tracker-api default --reporter-api default

mac-dev-unit:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --dev
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach test-unit
  - ./mach package --dev
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build-cef
  - ./mach build-geckolib
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh

mac-rel-css1:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach test-wpt --release --processes 4 --total-chunks 6 --this-chunk 5 --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
  - bash ./etc/ci/manifest_changed.sh

mac-rel-css2:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach test-wpt --release --processes 4 --total-chunks 6 --this-chunk 6 --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

mac-nightly:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./mach package --release
  - ./mach upload-nightly mac

linux-rel-intermittent:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --release
  - ./etc/ci/check_intermittents.sh --log-raw intermittents.log

linux-rel-nogate:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --release
  - python ./etc/ci/chaos_monkey_test.py
  - RUSTFLAGS= bash ./etc/ci/mutation_test.sh

mac-rel-intermittent:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release
  - ./etc/ci/check_intermittents.sh --log-raw intermittents.log

linux-dev:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach test-tidy --no-progress --all
  - ./mach test-tidy --no-progress --self-test
  - ./mach build --dev
  - ./mach test-unit
  - ./mach package --dev
  - ./mach build-cef
  - ./mach build --dev --no-default-features --features default-except-unstable
  - ./mach build-geckolib
  - ./mach test-stylo
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh
  - bash ./etc/ci/check_no_panic.sh

linux-rel-wpt:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --release --with-debug-assertions
  - ./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

linux-rel-css:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --release --with-debug-assertions
  - ./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
  - ./mach build-geckolib --release
  - ./mach test-stylo --release
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh

linux-nightly:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --release
  - ./mach package --release
  - ./mach upload-nightly linux
  - ./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

android:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env ANDROID_SDK=/home/servo/android/sdk/r25.2.3 ./mach build --android --dev
  - env ANDROID_SDK=/home/servo/android/sdk/r25.2.3 ./mach package --android --dev
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh
  - python ./etc/ci/check_dynamic_symbols.py

android-nightly:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - env ANDROID_SDK=/home/servo/android/sdk/r25.2.3 ./mach build --android --release
  - env ANDROID_SDK=/home/servo/android/sdk/r25.2.3 ./mach package --android --release
  - ./mach upload-nightly android

arm32:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --rel --target=arm-unknown-linux-gnueabihf
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh

arm64:
  - ./mach clean-nightlies --keep 3 --force
  - ./mach clean-cargo-cache --keep 3 --force
  - ./mach build --rel --target=aarch64-unknown-linux-gnu
  - bash ./etc/ci/lockfile_changed.sh
  - bash ./etc/ci/manifest_changed.sh

windows-msvc-dev:
  - mach.bat clean-cargo-cache --keep 3 --force
  - mach.bat clean-nightlies --keep 3 --force
  - mach.bat build --dev
  - mach.bat test-unit
  - mach.bat package --dev
  - mach.bat build-geckolib
  - mach.bat test-stylo

windows-msvc-nightly:
  - mach.bat clean-cargo-cache --keep 3 --force
  - mach.bat clean-nightlies --keep 3 --force
  - mach.bat build --release
  - mach.bat package --release
  - mach.bat upload-nightly windows-msvc
