| # CIRRUS CONFIGURATION FILE |
| # https://cirrus-ci.org/guide/writing-tasks/ |
| |
| # YAML anchors used to share fields between tasks. |
| # See https://confluence.atlassian.com/bitbucket/yaml-anchors-960154027.html |
| web_shard_template: &WEB_SHARD_TEMPLATE |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/**') || $CIRRUS_PR == ''" |
| environment: |
| # As of March 2020, the Web shards needed 16G of RAM and 4 CPUs to run all framework tests with goldens without flaking. |
| WEB_SHARD_COUNT: 8 |
| CPU: 4 |
| MEMORY: 16G |
| CHROME_NO_SANDBOX: true |
| GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095] |
| script: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| linux_shard_template: &LINUX_SHARD_TEMPLATE |
| 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 |
| |
| windows_shard_template: &WINDOWS_SHARD_TEMPLATE |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941 |
| script: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| macos_shard_template: &MACOS_SHARD_TEMPLATE |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $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 |
| |
| firebase_shard_template: &FIREBASE_SHARD_TEMPLATE |
| 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: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| 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: |
| # https://cirrus-ci.org/guide/docker-builder-vm/#dockerfile-as-a-ci-environment |
| 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/" |
| 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" |
| reupload_on_changes: false |
| flutter_pkg_cache: |
| folder: bin/cache/pkg |
| fingerprint_script: echo $OS; cat bin/internal/*.version |
| reupload_on_changes: false |
| artifacts_cache: |
| folder: bin/cache/artifacts |
| fingerprint_script: echo $OS; cat bin/internal/*.version |
| reupload_on_changes: false |
| setup_script: |
| - date |
| - git clean -xffd --exclude=bin/cache/ |
| - 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. We noticed OOM failures with 6GB 4/2020, so we increased the memory. |
| CPU: 1 |
| MEMORY: 8G |
| script: |
| - dart --enable-asserts ./dev/bots/analyze.dart |
| |
| - name: fuchsia_precache-linux # linux-only |
| only_if: "changesInclude('.cirrus.yml', 'bin/internal/engine.version')" |
| script: |
| - flutter precache --fuchsia --no-android --no-ios |
| - flutter precache --flutter_runner --no-android --no-ios |
| |
| - name: framework_tests-widgets-linux |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/**') || $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 |
| GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095] |
| script: |
| - 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/**') || $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 |
| GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095] |
| script: |
| - 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/**') || $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/**') || $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/**') || $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/**') || $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 |
| CHROME_NO_SANDBOX: true |
| script: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| - name: tool_coverage-linux # linux-only |
| only_if: "$CIRRUS_BRANCH == 'master'" |
| environment: |
| # As of February 2020, the tool_coverage-linux shard needed at least 24G of RAM to run without |
| # getting OOM-killed, and even 8 CPUs took 25 minutes. |
| CPU: 8 |
| MEMORY: 24G |
| 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_integration_tests |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/**', 'packages/flutter_web_plugins/**', 'bin/**') || $CIRRUS_PR == ''" |
| environment: |
| # As of October 2019, the Web shards needed more than 6G of RAM. |
| CPU: 2 |
| MEMORY: 8G |
| CHROME_NO_SANDBOX: true |
| GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095] |
| script: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| - name: web_tests-0-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-1-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-2-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-3-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-4-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-5-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-6-linux |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: web_tests-7_last-linux # last Web shard must end with _last |
| << : *WEB_SHARD_TEMPLATE |
| |
| - name: build_tests-0-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: build_tests-1_last-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 |
| << : *LINUX_SHARD_TEMPLATE |
| |
| - name: hostonly_devicelab_tests-1-linux |
| << : *LINUX_SHARD_TEMPLATE |
| |
| - name: hostonly_devicelab_tests-2-linux |
| << : *LINUX_SHARD_TEMPLATE |
| |
| - name: hostonly_devicelab_tests-3_last-linux |
| << : *LINUX_SHARD_TEMPLATE |
| |
| # 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/**') || $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 |
| |
| # firebase_test_lab_tests are linux-only |
| - name: firebase_test_lab_tests-0-linux |
| <<: *FIREBASE_SHARD_TEMPLATE |
| |
| - name: firebase_test_lab_tests-1-linux |
| <<: *FIREBASE_SHARD_TEMPLATE |
| |
| - name: firebase_test_lab_tests-2_last-linux |
| <<: *FIREBASE_SHARD_TEMPLATE |
| |
| - name: web_smoke_test |
| only_if: "changesInclude('.cirrus.yml', 'examples/hello_world/**' ,'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/**') || $CIRRUS_PR == ''" |
| environment: |
| # Tests Hello World with Flutter Web Engine using Flutter Driver. Should not need more resources. |
| CPU: 2 |
| MEMORY: 2G |
| CHROME_NO_SANDBOX: true |
| script: |
| - flutter config --enable-web |
| - git clone https://github.com/flutter/web_installers.git |
| - cd web_installers/packages/web_drivers/ |
| - pub get |
| - dart lib/web_driver_installer.dart & |
| - sleep 20 |
| - chromedriver/chromedriver --port=4444 & |
| - sleep 5 |
| - cd ../../../examples/hello_world/ |
| - flutter drive --target=test_driver/smoke_web_engine.dart -d web-server --profile --browser-name=chrome |
| |
| - name: deploy_gallery-linux # linux- and macos- only |
| # Do not add more tasks here. Nothing is currently deployed from master branch, so it is safe to run |
| # even if a test has failed. The behavior of failing dependencies is non-ideal for infra health. |
| # See also: https://github.com/flutter/flutter/pull/49454 |
| depends_on: |
| - analyze-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 |
| reupload_on_changes: false |
| flutter_pkg_cache: |
| folder: bin\cache\pkg |
| fingerprint_script: echo %OS% & type bin\internal\*.version |
| reupload_on_changes: false |
| artifacts_cache: |
| folder: bin\cache\artifacts |
| fingerprint_script: echo %OS% & type bin\internal\*.version |
| reupload_on_changes: false |
| setup_script: |
| - git clean -xffd --exclude=bin/cache/ # git wants forward slash path separators, even on Windows. |
| - 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/**') || $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/**') || $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/**') || $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/**') || $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/**') || $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/**') || $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-0-windows |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $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: build_tests-1_last-windows |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $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 |
| << : *WINDOWS_SHARD_TEMPLATE |
| 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 |
| |
| - name: hostonly_devicelab_tests-1-windows |
| << : *WINDOWS_SHARD_TEMPLATE |
| 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 |
| |
| - name: hostonly_devicelab_tests-2-windows |
| << : *WINDOWS_SHARD_TEMPLATE |
| 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 |
| |
| - name: hostonly_devicelab_tests-3_last-windows |
| << : *WINDOWS_SHARD_TEMPLATE |
| 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 |
| |
| # 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: catalina-xcode-11.3.1-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 |
| - bundle config set system 'true' |
| - sudo bundle install --gemfile=dev/ci/mac/Gemfile |
| - git clean -xffd --exclude=bin/cache/ |
| - 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/**') || $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/**') || $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/**') || $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/**') || $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/**') || $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/**') || $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-0-macos |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940 |
| script: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| - name: build_tests-1_last-macos |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940 |
| script: |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| - name: hostonly_devicelab_tests-0-macos |
| << : *MACOS_SHARD_TEMPLATE |
| |
| - name: hostonly_devicelab_tests-1-macos |
| << : *MACOS_SHARD_TEMPLATE |
| |
| - name: hostonly_devicelab_tests-2-macos |
| << : *MACOS_SHARD_TEMPLATE |
| |
| - name: hostonly_devicelab_tests-3_last-macos |
| << : *MACOS_SHARD_TEMPLATE |
| |
| - name: add_to_app_tests-macos |
| only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $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 |
| # Do not add more tasks here. Nothing is currently deployed from master branch, so it is safe to run |
| # even if a test has failed. The behavior of failing dependencies is non-ideal for infra health. |
| # See also: https://github.com/flutter/flutter/pull/49454 |
| depends_on: |
| - analyze-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 |
| |
| - name: verify_binaries_codesigned-macos # macos-only |
| # TODO(fujino): remove this `only_if` after https://github.com/flutter/flutter/issues/44372 |
| # Only run pre/post submit for release branches |
| only_if: "$CIRRUS_BASE_BRANCH == 'dev' || $CIRRUS_BRANCH == 'dev' || $CIRRUS_BASE_BRANCH == 'beta' || $CIRRUS_BRANCH == 'beta' || $CIRRUS_BASE_BRANCH == 'stable' || $CIRRUS_BRANCH == 'stable'" |
| depends_on: |
| - analyze-linux |
| script: |
| - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976 |
| - dart --enable-asserts ./dev/bots/codesign.dart |
| |
| 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] |
| # Do not add more tasks here. The behavior of failing dependencies is non-ideal for infra health. |
| # See also: https://github.com/flutter/flutter/pull/49454 |
| depends_on: |
| - docs-linux |
| - analyze-linux |
| build_script: |
| - cd "$CIRRUS_WORKING_DIR/dev/ci/docker_linux" |
| - ./docker_build.sh |
| - ./docker_login.sh |
| - ./docker_push.sh |