mirror of
https://github.com/flutter/flutter
synced 2024-10-13 19:52:53 +00:00
1871c61f9b
In #45392, the Windows shard values were bumped up to 4 CPU and 12GB RAM across the board to make tests pass. This change gives each shard values that make sense for that shard, thus allowing shards to run faster while conserving resources where possible.
702 lines
35 KiB
YAML
702 lines
35 KiB
YAML
# CIRRUS CONFIGURATION FILE
|
|
# https://cirrus-ci.org/guide/writing-tasks/
|
|
|
|
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
|
|
|
|
environment:
|
|
# For details about environment variables used in Cirrus, including how encrypted variables work,
|
|
# see https://cirrus-ci.org/guide/writing-tasks/#environment-variables
|
|
GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
|
|
# We change Flutter's directory to include a space in its name (see $CIRRUS_WORKING_DIR) so that
|
|
# we constantly test path names with spaces in them. The FLUTTER_SDK_PATH_WITH_SPACE variable must
|
|
# therefore have a space in it.
|
|
FLUTTER_SDK_PATH_WITH_SPACE: "flutter sdk"
|
|
# We force BOT to true so that all our tools know we're in a CI environment. This avoids any
|
|
# dependency on precisely how Cirrus is detected by our tools.
|
|
BOT: "true"
|
|
# Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they might include non-ASCII
|
|
# characters which makes Gradle crash. See: https://github.com/flutter/flutter/issues/24935
|
|
# TODO(amirha): remove once we've migrated to newer Gradle
|
|
CIRRUS_CHANGE_MESSAGE: ""
|
|
CIRRUS_COMMIT_MESSAGE: ""
|
|
|
|
# LINUX SHARDS
|
|
task:
|
|
container:
|
|
dockerfile: "dev/ci/docker_linux/Dockerfile"
|
|
cpu: $CPU
|
|
memory: $MEMORY
|
|
environment:
|
|
# We shrink our default resource requirement as much as possible because that way we are more
|
|
# likely to get scheduled. We require 4G of RAM because most of the shards (all but one as of
|
|
# October 2019) just get OOM-killed with less. Some shards may need more. When increasing the
|
|
# requirements for select shards, please leave a comment on those shards saying when you
|
|
# increased the requirements, what numbers you tried, and what the results were.
|
|
CPU: 1 # 0.1-8 without compute credits, 0.1-30 with (yes, you can go fractional)
|
|
MEMORY: 4G # 256M-24G without compute credits, 256M-90G with
|
|
CIRRUS_WORKING_DIR: "/tmp/$FLUTTER_SDK_PATH_WITH_SPACE"
|
|
CIRRUS_DOCKER_CONTEXT: "dev/ci/docker_linux"
|
|
PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
|
|
ANDROID_SDK_ROOT: "/opt/android_sdk"
|
|
pub_cache:
|
|
folder: $HOME/.pub-cache
|
|
fingerprint_script: echo $OS; grep -r --include=pubspec.yaml 'PUBSPEC CHECKSUM' "$CIRRUS_WORKING_DIR"
|
|
flutter_pkg_cache:
|
|
folder: bin/cache/pkg
|
|
fingerprint_script: echo $OS; cat bin/internal/*.version
|
|
artifacts_cache:
|
|
folder: bin/cache/artifacts
|
|
fingerprint_script: echo $OS; cat bin/internal/*.version
|
|
setup_script:
|
|
- date
|
|
- git clean -xffd
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
|
|
- flutter config --no-analytics
|
|
- flutter doctor -v
|
|
- flutter update-packages
|
|
- ./dev/bots/accept_android_sdk_licenses.sh
|
|
- date
|
|
on_failure:
|
|
failure_script:
|
|
- date
|
|
- which flutter
|
|
matrix:
|
|
- name: analyze-linux # linux-only
|
|
# environment:
|
|
# Empirically, the analyze-linux shard runs surprisingly fast (under 15 minutes) with just 1
|
|
# CPU and 4G RAM as of October 2019. It fails with less than 4G though.
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/analyze.dart
|
|
|
|
- name: framework_tests-widgets-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# We use 3 CPUs because that's the minimum required to get framework_tests-widgets-linux
|
|
# running fast enough that it is not the long pole, as of OCtober 2019.
|
|
CPU: 3
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: framework_tests-libraries-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# We use 3 CPUs because that's the minimum required to get the
|
|
# framework_tests-libraries-linux shard running fast enough that it is not the long pole, as
|
|
# of October 2019.
|
|
CPU: 3
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: framework_tests-misc-linux
|
|
# this includes the tests for directories in dev/
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_goldens/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# We use 3 CPUs because that's the minimum required to get framework_tests-misc-linux
|
|
# running fast enough that it is not the long pole, as of October 2019.
|
|
CPU: 3
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-general-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of November 2019, the tool_tests-general-linux shard got faster with more CPUs up to 4
|
|
# CPUs, and needed at least 10G of RAM to not run out of memory.
|
|
CPU: 4
|
|
MEMORY: 10G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-commands-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the tool_tests-commands-linux shard got faster with more CPUs up to 6
|
|
# CPUs, and needed at least 8G of RAM to not run out of memory.
|
|
# Increased to 10GB on 19th Nov 2019 due to significant number of OOMKilled failures on PR builds.
|
|
CPU: 6
|
|
MEMORY: 10G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-integration-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the tool_tests-integration-linux shard got faster with more CPUs up to
|
|
# 6 CPUs, and needed at least 8G of RAM to not run out of memory.
|
|
CPU: 6
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_coverage-linux # linux-only
|
|
only_if: "$CIRRUS_BRANCH == 'master'"
|
|
environment:
|
|
# As of October 2019, the tool_coverage-linux shard needed at least 12G of RAM to run without
|
|
# getting OOM-killed, and even 8 CPUs took 25 minutes.
|
|
CPU: 8
|
|
MEMORY: 12G
|
|
CODECOV_TOKEN: ENCRYPTED[7c76a7f8c9264f3b7f3fd63fcf186f93c62c4dfe43ec288861c2f506d456681032b89efe7b7a139c82156350ca2c752c]
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
- bash <(curl -s https://codecov.io/bash) -c -f packages/flutter_tools/coverage/lcov.info -F flutter_tool
|
|
|
|
- name: web_tests-0-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-1-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-2-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-3-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-4-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-5-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-6-linux
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: web_tests-7_last-linux # last Web shard must end with _last
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of October 2019, the Web shards needed more than 6G of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: build_tests-linux
|
|
environment:
|
|
# With 1 CPU and 4G of RAM, as of October 2019, build_tests-linux would get OOM-killed.
|
|
# Increasing the RAM to 12G allowed it to finish in about 30 minutes, any extra CPU (tried 2
|
|
# and 4) reduced that to just over 20 minutes. 6G was enough not to get OOM-killed.
|
|
CPU: 2
|
|
MEMORY: 6G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-0-linux
|
|
environment:
|
|
# Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-1-linux
|
|
environment:
|
|
# Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-2-linux
|
|
environment:
|
|
# Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-3_last-linux
|
|
environment:
|
|
# Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
# TODO(ianh): name: add_to_app_tests-linux
|
|
|
|
- name: docs-linux # linux-only
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_drive/**', 'packages/flutter_localizations/**', 'packages/flutter_goldens/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# Empirically, as of October 2019, the docs-linux shard took about 30 minutes when run with
|
|
# 1 CPU and 4G of RAM. 2 CPUs reduced that to 20 minutes, more CPUs did not improve matters.
|
|
CPU: 2
|
|
# For uploading master docs to Firebase master branch staging site
|
|
FIREBASE_MASTER_TOKEN: ENCRYPTED[eb768d18798fdc5abfe09b224e1724c4d82831d715ccf90df2c79d618c317216cbd99493278361f6fe7948b409b603f0]
|
|
# For uploading beta docs to Firebase public live site
|
|
FIREBASE_PUBLIC_TOKEN: ENCRYPTED[37e8b82f167864cae9a3f4d2cf3f37dea331d9375c295327c45de524f6c588fa6f6d63e5784f10f6d43ce29689f36c92]
|
|
script:
|
|
- ./dev/bots/docs.sh
|
|
|
|
- name: customer_testing-linux
|
|
# environment:
|
|
# Empirically, this shard runs fine at 1 CPU and 4G RAM as of October 2019. We will probably
|
|
# want to grow this container when we invite people to add their tests in large numbers.
|
|
script:
|
|
- rm -rf bin/cache/pkg/tests
|
|
- git clone https://github.com/flutter/tests.git bin/cache/pkg/tests
|
|
- dart --enable-asserts dev/customer_testing/run_tests.dart --skip-on-fetch-failure --skip-template bin/cache/pkg/tests/registry/*.test
|
|
|
|
- name: firebase_test_lab_tests-linux # linux-only
|
|
environment:
|
|
# Empirically, this shard runs in 20-25 minutes with just one CPU and 4G of RAM, as of
|
|
# October 2019. It does not seem to be sensitive to the number of CPUs or amount of RAM;
|
|
# doubling CPUs had no effect (mere seconds under 20 minutes), increasing RAM to 24G left it
|
|
# on the high end of the 20-25 minute range. (This makes sense, as it's just driving the
|
|
# Firebase test lab remotely.) Less than 4G of RAM made it go OOM.
|
|
CLOUDSDK_CORE_DISABLE_PROMPTS: 1
|
|
GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[1c140257edc48f5578fa5a0e5038b84c8e53270c405efa5a8e35ea303a4e0d135853989f448f72136206de854d17fbec]
|
|
script:
|
|
- ./dev/bots/firebase_testlab.sh
|
|
|
|
- name: deploy_gallery-linux # linux- and macos- only
|
|
depends_on:
|
|
- analyze-linux
|
|
- framework_tests-widgets-linux
|
|
- framework_tests-libraries-linux
|
|
- framework_tests-misc-linux
|
|
- tool_tests-general-linux
|
|
- tool_tests-commands-linux
|
|
- tool_tests-integration-linux
|
|
- build_tests-linux
|
|
- hostonly_devicelab_tests-0-linux
|
|
- hostonly_devicelab_tests-1-linux
|
|
- hostonly_devicelab_tests-2-linux
|
|
- hostonly_devicelab_tests-3_last-linux
|
|
- firebase_test_lab_tests-linux
|
|
environment:
|
|
# As of October 2019, 1 CPU and 4G of RAM let deploy_gallery-linux finish in about 15
|
|
# minutes, once it got started.
|
|
GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE: ENCRYPTED[d9ac1462c3c556fc2f8165c9d5566a16497d8ebc38a50357f7f3abf136b7f83e1d1d76dde36fee356cb0f9ebf7a89346]
|
|
ANDROID_GALLERY_UPLOAD_KEY: ENCRYPTED[0f2aca35f05b26add5d9edea2a7449341269a2b7e22d5c667f876996e2e8bc44ff1369431ebf73b7c5581fd95d0e5902]
|
|
script:
|
|
- ./dev/bots/deploy_gallery.sh
|
|
|
|
# WINDOWS SHARDS
|
|
task:
|
|
windows_container:
|
|
image: cirrusci/android-sdk:28-windowsservercore-2019
|
|
os_version: 2019
|
|
cpu: $CPU
|
|
memory: $MEMORY
|
|
environment:
|
|
CPU: 1 # 1-8 without compute credits, 1-30 with
|
|
MEMORY: 2G # 256M-24G without compute credits, 256M-90G with
|
|
CIRRUS_WORKING_DIR: "C:\\Windows\\Temp\\$FLUTTER_SDK_PATH_WITH_SPACE"
|
|
PATH: "$CIRRUS_WORKING_DIR/bin;$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin;$PATH"
|
|
pub_cache:
|
|
folder: $APPDATA\Pub\Cache
|
|
fingerprint_script:
|
|
- ps: $Environment:OS; Get-ChildItem -Path "$Environment:CIRRUS_WORKING_DIR" pubspec.yaml -Recurse | Select-String -Pattern "PUBSPEC CHECKSUM" -SimpleMatch
|
|
flutter_pkg_cache:
|
|
folder: bin\cache\pkg
|
|
fingerprint_script: echo %OS% & type bin\internal\*.version
|
|
artifacts_cache:
|
|
folder: bin\cache\artifacts
|
|
fingerprint_script: echo %OS% & type bin\internal\*.version
|
|
setup_script:
|
|
- git clean -xffd
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
|
|
- flutter config --no-analytics
|
|
- flutter doctor -v
|
|
- flutter update-packages
|
|
- git fetch origin master
|
|
matrix:
|
|
- name: framework_tests-widgets-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of December 2019, framework_tests-widgets-windows needs 4 CPUs to pass reliably.
|
|
# With a min of 4 CPUs and 4 GB of RAM, it ran in about 50 minutes. Increasing to 8 CPUs and
|
|
# 8 GB RAM sped that up to ~25 minutes, and increasing either beyond that yielded no
|
|
# further speed increase. Cirrus requires >= 8GM RAM for 8 CPUs.
|
|
CPU: 8
|
|
MEMORY: 8G
|
|
GOLDCTL: "C:\\Windows\\Temp\\depot_tools\\goldctl.exe"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- powershell dev\bots\download_goldctl.ps1
|
|
- dart --enable-asserts dev\bots\test.dart
|
|
|
|
- name: framework_tests-libraries-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of December 2019, the framework_tests-libraries-windows shard needed 2 CPUs to pass.
|
|
# With a min of 2 CPUs and 2 GB RAM, it ran in about 60 minutes. Increasing to 8 CPUs made
|
|
# it run in ~20 minutes, and Cirrus requires 8 CPUs to have at least 8 GB RAM. Increasing
|
|
# beyond this yielded no gains.
|
|
CPU: 8
|
|
MEMORY: 8G
|
|
GOLDCTL: "C:\\Windows\\Temp\\depot_tools\\goldctl.exe"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- powershell dev\bots\download_goldctl.ps1
|
|
- dart --enable-asserts dev\bots\test.dart
|
|
|
|
- name: framework_tests-misc-windows
|
|
# this includes the tests for directories in dev/
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_goldens/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of December 2019, the framework_tests-misc-windows shard needed 2 CPUs and 3 GB RAM
|
|
# to pass (taking ~40 minutes). Increasing to 4 CPUs (necessitating 4 GB RAM per Cirrus)
|
|
# sped that up to ~30 minutes, with further overprovisioning yielding no further gain.
|
|
CPU: 4
|
|
MEMORY: 4G
|
|
script:
|
|
- dart --enable-asserts dev\bots\test.dart
|
|
|
|
- name: tool_tests-general-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of December 2019, the tool_tests-general-windows shard required 2 CPUs and 8 GB RAM to
|
|
# pass. Raising that to 4 CPUs sped it up to ~30 minutes, with further provisioning yielding
|
|
# no gain.
|
|
CPU: 4
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-commands-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of December 2019, the tool_tests-commands-windows shard needed 4 CPUs and 8 GB RAM to
|
|
# reliably pass and not be the long pole, running in about 25 minutes. Bumping beyond these
|
|
# numbers yielded no extra gain.
|
|
CPU: 4
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-integration-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
# As of December 2019, the tool_tests-integration-windows shard required 6 GB RAM to pass.
|
|
# Emperically, 4 CPUs and 10 GB RAM yielded optimal results (~22 minutes); bumping beyond
|
|
# these amounts yielded no extra gain.
|
|
CPU: 4
|
|
MEMORY: 10G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
# TODO(ianh): Enable Web tests on Windows
|
|
|
|
- name: build_tests-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
environment:
|
|
# As of December 2019, the build_tests-windows shard requires 6 GB RAM to pass.
|
|
# Emperically, using 6 CPUs and 10 GB RAM yielded optimal results (~33 minutes);
|
|
# bumping beyond these limits yielded no extra gain.
|
|
CPU: 6
|
|
MEMORY: 10G
|
|
script:
|
|
- dart --enable-asserts dev\bots\test.dart
|
|
|
|
- name: hostonly_devicelab_tests-0-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
environment:
|
|
# As of December 2019, the hostonly_devicelab_tests-0-windows shard needs at least 6G RAM to
|
|
# succeed. The shard got faster with more CPUs up to 6 CPUs and more RAM up to 8 GB
|
|
# (running in about 30 minutes).
|
|
CPU: 6
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-1-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
environment:
|
|
# As of December 2019, the hostonly_devicelab_tests-1-windows shard requires 4 GB RAM to
|
|
# succeed. The optimal configuration was 4 CPUs and 6 GB RAM, running in ~26 minutes.
|
|
# Less CPU or RAM ran slower, and more CPU or RAM yielded no extra gain.
|
|
CPU: 4
|
|
MEMORY: 6G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-2-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
environment:
|
|
# As of December 2019, the hostonly_devicelab_tests-2-windows shard required 2 GB RAM to
|
|
# succeed. The optimal configuration was 4 CPUs and 8 GB RAM, running in ~33 minutes.
|
|
# Less CPU or RAM ran slower, and more CPU or RAM yielded no extra gain.
|
|
CPU: 4
|
|
MEMORY: 8G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-3_last-windows
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
environment:
|
|
# As of December 2019, the hostonly_devicelab_tests-3_last-windows shard required 6 GB RAM
|
|
# to succeed. The optimal configuration was 4 CPUs and 6 GB RAM, running in ~43 minutes.
|
|
# Less CPU or RAM ran slower, and more CPU or RAM yielded no extra gain.
|
|
CPU: 4
|
|
MEMORY: 6G
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
# TODO(ianh): name: add_to_app_tests-windows
|
|
|
|
- name: customer_testing-windows
|
|
environment:
|
|
# As of December 2019, the customer_testing-windows shard got faster with more CPUs up to 4
|
|
# CPUs (which requires >=4G RAM), and needed at least 2G of RAM to not run out of memory.
|
|
CPU: 4
|
|
MEMORY: 4G
|
|
script:
|
|
- CMD /S /C "IF EXIST "bin\cache\pkg\tests\" RMDIR /S /Q bin\cache\pkg\tests"
|
|
- git clone https://github.com/flutter/tests.git bin\cache\pkg\tests
|
|
- dart --enable-asserts dev\customer_testing\run_tests.dart --skip-on-fetch-failure --skip-template bin/cache/pkg/tests/registry/*.test
|
|
|
|
# MACOS SHARDS
|
|
# Mac doesn't use caches because they apparently take longer to populate and save
|
|
# than just fetching the data in the first place.
|
|
task:
|
|
osx_instance:
|
|
image: mojave-flutter # see https://cirrus-ci.org/guide/macOS/ for list of images (we should update regularly)
|
|
# cpu is always 2
|
|
# memory is always 8G
|
|
environment:
|
|
CIRRUS_WORKING_DIR: "/tmp/$FLUTTER_SDK_PATH_WITH_SPACE"
|
|
FLUTTER_FRAMEWORK_DIR: "$CIRRUS_WORKING_DIR/bin/cache/artifacts/engine/ios/"
|
|
PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
|
|
COCOAPODS_DISABLE_STATS: true
|
|
CPU: 2
|
|
MEMORY: 8G
|
|
setup_script:
|
|
- date
|
|
- which flutter
|
|
- bundle --version
|
|
- sudo bundle install --system --gemfile=dev/ci/mac/Gemfile
|
|
- git clean -xffd
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
|
|
- flutter config --no-analytics
|
|
- flutter doctor -v
|
|
- flutter update-packages
|
|
- date
|
|
- which flutter
|
|
on_failure:
|
|
failure_script:
|
|
- date
|
|
- which flutter
|
|
matrix:
|
|
- name: framework_tests-widgets-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts dev/bots/test.dart
|
|
|
|
- name: framework_tests-libraries-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
environment:
|
|
GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
|
|
GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- ./dev/bots/download_goldctl.sh
|
|
- dart --enable-asserts dev/bots/test.dart
|
|
|
|
- name: framework_tests-misc-macos
|
|
# this includes the tests for directories in dev/
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_goldens/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts dev/bots/test.dart
|
|
|
|
- name: tool_tests-general-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-commands-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: tool_tests-integration-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
# TODO(ianh): Enable Web tests on macOS.
|
|
|
|
- name: build_tests-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
|
|
script:
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-0-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-1-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-2-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: hostonly_devicelab_tests-3_last-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts ./dev/bots/test.dart
|
|
|
|
- name: add_to_app_tests-macos
|
|
only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
|
|
skip: true # https://github.com/flutter/flutter/pull/42444
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- dart --enable-asserts dev/bots/test.dart
|
|
|
|
- name: customer_testing-macos
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- rm -rf bin/cache/pkg/tests
|
|
- git clone https://github.com/flutter/tests.git bin/cache/pkg/tests
|
|
- dart --enable-asserts dev/customer_testing/run_tests.dart --skip-on-fetch-failure --skip-template bin/cache/pkg/tests/registry/*.test
|
|
|
|
- name: deploy_gallery-macos # linux- and macos- only
|
|
depends_on:
|
|
- analyze-linux
|
|
- framework_tests-widgets-macos
|
|
- framework_tests-libraries-macos
|
|
- framework_tests-misc-macos
|
|
- tool_tests-general-macos
|
|
- tool_tests-commands-macos
|
|
- tool_tests-integration-macos
|
|
- build_tests-macos
|
|
- hostonly_devicelab_tests-0-macos
|
|
- hostonly_devicelab_tests-1-macos
|
|
- hostonly_devicelab_tests-2-macos
|
|
- hostonly_devicelab_tests-3_last-macos
|
|
- firebase_test_lab_tests-linux
|
|
environment:
|
|
# Apple Fastlane password.
|
|
FASTLANE_PASSWORD: ENCRYPTED[4b1f0b8d52874e9de965acd46c79743f3b81f3a513614179b9be7cf53dc8258753e257bdadb11a298ee455259df21865]
|
|
# Private repo for publishing certificates.
|
|
PUBLISHING_MATCH_CERTIFICATE_REPO: ENCRYPTED[3c0e78877d933fc80107aa6f3790fd1cf927250b852d6cb53202be696b4903ed8ca839b809626aaf18050bf7e436fab7]
|
|
PUBLISHING_MATCH_REPO_TOKEN: ENCRYPTED[3d1230b744c6ed6c788a91bec741b769401dbcd426b18f9af8080bfeefdfc21913ca4047980c5b5b7ce823f12e7b6b19]
|
|
# Apple Certificates Match Passphrase
|
|
MATCH_PASSWORD: ENCRYPTED[db07f252234397090e3ec59152d9ec1831f5ecd0ef97d247b1dca757bbb9ef9b7c832a39bce2caf1949ccdf097e59a73]
|
|
script:
|
|
- ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
- ./dev/bots/deploy_gallery.sh
|
|
|
|
docker_builder:
|
|
# Only build a new docker image when we tag a release (for dev, beta, or
|
|
# stable). Note: tagging a commit and pushing to a release branch are
|
|
# different cirrus triggers. See a tag CI run at e.g.
|
|
# https://cirrus-ci.com/github/flutter/flutter/v1.2.3
|
|
name: docker_build
|
|
only_if: $CIRRUS_TAG != ''
|
|
environment:
|
|
GCLOUD_CREDENTIALS: ENCRYPTED[f7c098d4dd7f5ee1bfee0bb7e944cce72efbe10e97ad6440ae72de4de6a1c24d23f421a2619c668e94377fb64b0bb3e6]
|
|
depends_on:
|
|
- docs-linux
|
|
- analyze-linux
|
|
- framework_tests-widgets-linux
|
|
- framework_tests-libraries-linux
|
|
- framework_tests-misc-linux
|
|
- tool_tests-general-linux
|
|
- tool_tests-commands-linux
|
|
- tool_tests-integration-linux
|
|
- build_tests-linux
|
|
- hostonly_devicelab_tests-0-linux
|
|
- hostonly_devicelab_tests-1-linux
|
|
- hostonly_devicelab_tests-2-linux
|
|
- hostonly_devicelab_tests-3_last-linux
|
|
- firebase_test_lab_tests-linux
|
|
build_script:
|
|
- cd "$CIRRUS_WORKING_DIR/dev/ci/docker_linux"
|
|
- ./docker_build.sh
|
|
- ./docker_login.sh
|
|
- ./docker_push.sh
|