| # CIRRUS CONFIGURATION FILE |
| # https://cirrus-ci.org/guide/writing-tasks/ |
| |
| environment: |
| # For details about environment variables used in Cirrus, including how encrypted variables work, |
| # see https://cirrus-ci.org/guide/writing-tasks/#environment-variables |
| # 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" |
| |
| gcp_credentials: ENCRYPTED[!48cff44dd32e9cc412d4d381c7fe68d373ca04cf2639f8192d21cb1a9ab5e21129651423a1cf88f3fd7fe2125c1cabd9!] |
| |
| # LINUX SHARDS |
| task: |
| gke_container: |
| dockerfile: "dev/ci/docker_linux/Dockerfile" |
| builder_image_name: docker-builder # gce vm image |
| builder_image_project: flutter-cirrus |
| cluster_name: test-cluster |
| zone: us-central1-a |
| namespace: default |
| cpu: $CPU |
| memory: $MEMORY |
| use_in_memory_disk: $USE_IN_MEMORY_DISK |
| 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" |
| SHOULD_UPDATE_PACKAGES: 'TRUE' # can be overridden at the task level |
| USE_IN_MEMORY_DISK: false |
| 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 |
| - if [ "$SHOULD_UPDATE_PACKAGES" == TRUE ]; then flutter update-packages; fi |
| - flutter doctor -v |
| - ./dev/bots/accept_android_sdk_licenses.sh |
| - date |
| on_failure: |
| failure_script: |
| - date |
| - which flutter |
| matrix: |
| - name: analyze-linux # linux-only |
| only_if: "$CIRRUS_PR != ''" |
| 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: 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 |
| 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 |
| 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 |
| SHOULD_UPDATE_PACKAGES: "FALSE" |
| script: |
| - (cd packages/flutter_tools; pub get) |
| - (cd packages/flutter_tools/test/data/asset_test/main; pub get) |
| - (cd packages/flutter_tools/test/data/asset_test/font; pub get) |
| - (cd dev/bots; pub get) |
| - 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 |
| SHOULD_UPDATE_PACKAGES: "FALSE" |
| script: |
| - (cd packages/flutter_tools; pub get) |
| - (cd dev/bots; pub get) |
| - dart --enable-asserts ./dev/bots/test.dart |
| |
| - name: docs-linux # linux-only |
| environment: |
| CPU: 4 |
| MEMORY: 8G |
| only_if: "$CIRRUS_PR != ''" |
| script: |
| - ./dev/bots/docs.sh |
| |
| - name: customer_testing-linux |
| only_if: "$CIRRUS_PR != ''" |
| 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. |
| SHOULD_UPDATE_PACKAGES: "FALSE" |
| script: |
| # Cirrus doesn't give us the master branch, so we have to fetch it for ourselves, |
| # otherwise we won't be able to figure out how old or new our current branch is. |
| - git config user.email "cirrus-bot@invalid" |
| - git fetch origin master:master |
| # The actual logic is in a shell script so that it can be shared between CIs. |
| - (cd dev/customer_testing/; ./ci.sh) |
| |
| - 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 chromedriver --install-only |
| - chromedriver/chromedriver --port=4444 & |
| - sleep 1 |
| - cd ../../../examples/hello_world/ |
| - flutter drive --target=test_driver/smoke_web_engine.dart -d web-server --profile --browser-name=chrome |