blob: 1da3b938cbaf75b0eee4b6c678d35f2f657e16cf [file] [log] [blame]
Ian Hickson124dc662019-10-18 16:35:39 -07001# CIRRUS CONFIGURATION FILE
Todd Volkert6d848eb2019-12-05 12:13:01 -08002# https://cirrus-ci.org/guide/writing-tasks/
Fedor Korotkov73334592018-05-01 18:11:21 -04003
Ian Hickson124dc662019-10-18 16:35:39 -07004environment:
5 # For details about environment variables used in Cirrus, including how encrypted variables work,
6 # see https://cirrus-ci.org/guide/writing-tasks/#environment-variables
Ian Hickson124dc662019-10-18 16:35:39 -07007 # We change Flutter's directory to include a space in its name (see $CIRRUS_WORKING_DIR) so that
8 # we constantly test path names with spaces in them. The FLUTTER_SDK_PATH_WITH_SPACE variable must
9 # therefore have a space in it.
10 FLUTTER_SDK_PATH_WITH_SPACE: "flutter sdk"
11 # We force BOT to true so that all our tools know we're in a CI environment. This avoids any
12 # dependency on precisely how Cirrus is detected by our tools.
13 BOT: "true"
Ian Hickson124dc662019-10-18 16:35:39 -070014
keyonghan9f729952021-12-07 13:09:05 -080015gcp_credentials: ENCRYPTED[!cc769765170bebc37e0556e2da5915ca64ee37f4ec8c966ec147e2f59578b476c99e457eafce4e2f8b1a4e305f7096b8!]
godofredoceb1868b2021-03-19 14:26:04 -070016
Ian Hickson124dc662019-10-18 16:35:39 -070017# LINUX SHARDS
Fedor Korotkov73334592018-05-01 18:11:21 -040018task:
godofredoceb1868b2021-03-19 14:26:04 -070019 gke_container:
Christopher Fujino20af1f22019-10-29 14:29:27 -070020 dockerfile: "dev/ci/docker_linux/Dockerfile"
godofredoceb1868b2021-03-19 14:26:04 -070021 builder_image_name: docker-builder # gce vm image
22 builder_image_project: flutter-cirrus
godofredocc2d12ea2021-03-23 10:11:54 -070023 cluster_name: test-cluster
godofredoceb1868b2021-03-19 14:26:04 -070024 zone: us-central1-a
25 namespace: default
Ian Hickson124dc662019-10-18 16:35:39 -070026 cpu: $CPU
27 memory: $MEMORY
Todd Volkert39fa0022020-07-27 21:11:43 -070028 use_in_memory_disk: $USE_IN_MEMORY_DISK
Ian Hickson124dc662019-10-18 16:35:39 -070029 environment:
30 # We shrink our default resource requirement as much as possible because that way we are more
31 # likely to get scheduled. We require 4G of RAM because most of the shards (all but one as of
32 # October 2019) just get OOM-killed with less. Some shards may need more. When increasing the
33 # requirements for select shards, please leave a comment on those shards saying when you
34 # increased the requirements, what numbers you tried, and what the results were.
35 CPU: 1 # 0.1-8 without compute credits, 0.1-30 with (yes, you can go fractional)
36 MEMORY: 4G # 256M-24G without compute credits, 256M-90G with
37 CIRRUS_WORKING_DIR: "/tmp/$FLUTTER_SDK_PATH_WITH_SPACE"
Dan Fielded73f942020-02-05 13:18:46 -080038 CIRRUS_DOCKER_CONTEXT: "dev/"
Fedor Korotkov73334592018-05-01 18:11:21 -040039 PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
Danny Tuppenyc19142d2018-12-17 17:29:09 +000040 ANDROID_SDK_ROOT: "/opt/android_sdk"
Christopher Fujino34c977f2020-09-03 13:49:26 -070041 SHOULD_UPDATE_PACKAGES: 'TRUE' # can be overridden at the task level
Todd Volkert39fa0022020-07-27 21:11:43 -070042 USE_IN_MEMORY_DISK: false
Danny Tuppeny07e93b32018-08-02 20:45:07 +010043 pub_cache:
44 folder: $HOME/.pub-cache
45 fingerprint_script: echo $OS; grep -r --include=pubspec.yaml 'PUBSPEC CHECKSUM' "$CIRRUS_WORKING_DIR"
Jenn Magderbe97fdb2020-02-27 10:34:46 -080046 reupload_on_changes: false
Danny Tuppeny07e93b32018-08-02 20:45:07 +010047 flutter_pkg_cache:
48 folder: bin/cache/pkg
Kate Lovett0379dd12019-07-23 09:30:41 -070049 fingerprint_script: echo $OS; cat bin/internal/*.version
Jenn Magderbe97fdb2020-02-27 10:34:46 -080050 reupload_on_changes: false
Danny Tuppeny07e93b32018-08-02 20:45:07 +010051 artifacts_cache:
52 folder: bin/cache/artifacts
Christopher Fujino102ab1e2019-07-15 09:22:29 -070053 fingerprint_script: echo $OS; cat bin/internal/*.version
Jenn Magderbe97fdb2020-02-27 10:34:46 -080054 reupload_on_changes: false
Ian Hickson124dc662019-10-18 16:35:39 -070055 setup_script:
56 - date
Jenn Magder6f0136c2020-01-28 12:52:30 -080057 - git clean -xffd --exclude=bin/cache/
Ian Hickson124dc662019-10-18 16:35:39 -070058 - git fetch origin
59 - git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
60 - flutter config --no-analytics
Christopher Fujino34c977f2020-09-03 13:49:26 -070061 - if [ "$SHOULD_UPDATE_PACKAGES" == TRUE ]; then flutter update-packages; fi
Ian Hickson124dc662019-10-18 16:35:39 -070062 - flutter doctor -v
Ian Hickson124dc662019-10-18 16:35:39 -070063 - ./dev/bots/accept_android_sdk_licenses.sh
64 - date
65 on_failure:
66 failure_script:
67 - date
68 - which flutter
Fedor Korotkov73334592018-05-01 18:11:21 -040069 matrix:
Greg Spencer01513592021-08-03 10:20:04 -070070 - name: analyze-linux # linux-only
71 only_if: "$CIRRUS_PR != ''"
72 environment:
73 # Empirically, the analyze-linux shard runs surprisingly fast (under 15 minutes) with just 1
74 # CPU. We noticed OOM failures with 6GB 4/2020, so we increased the memory.
75 CPU: 1
76 MEMORY: 8G
77 script:
78 - dart --enable-asserts ./dev/bots/analyze.dart
Ian Hickson124dc662019-10-18 16:35:39 -070079
godofredoc48b9c3d2020-08-14 00:04:33 -070080 - name: framework_tests-widgets-linux
godofredocd5044372020-08-18 17:01:09 -070081 only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/**') && $CIRRUS_PR != ''"
godofredoc48b9c3d2020-08-14 00:04:33 -070082 environment:
83 # We use 3 CPUs because that's the minimum required to get framework_tests-widgets-linux
84 # running fast enough that it is not the long pole, as of October 2019.
85 CPU: 3
godofredoc48b9c3d2020-08-14 00:04:33 -070086 script:
87 - dart --enable-asserts ./dev/bots/test.dart
88
89 - name: framework_tests-libraries-linux
godofredocd5044372020-08-18 17:01:09 -070090 only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/**') && $CIRRUS_PR != ''"
godofredoc48b9c3d2020-08-14 00:04:33 -070091 environment:
92 # We use 3 CPUs because that's the minimum required to get the
93 # framework_tests-libraries-linux shard running fast enough that it is not the long pole, as
94 # of October 2019.
95 CPU: 3
godofredoc48b9c3d2020-08-14 00:04:33 -070096 script:
97 - dart --enable-asserts ./dev/bots/test.dart
98
99 - name: framework_tests-misc-linux
100 # this includes the tests for directories in dev/
godofredocd5044372020-08-18 17:01:09 -0700101 only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_goldens/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/**') && $CIRRUS_PR != ''"
godofredoc48b9c3d2020-08-14 00:04:33 -0700102 environment:
103 # We use 3 CPUs because that's the minimum required to get framework_tests-misc-linux
104 # running fast enough that it is not the long pole, as of October 2019.
105 CPU: 3
106 script:
107 - dart --enable-asserts ./dev/bots/test.dart
108
Ian Hickson124dc662019-10-18 16:35:39 -0700109 - name: tool_tests-general-linux
godofredocd5044372020-08-18 17:01:09 -0700110 only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/**') && $CIRRUS_PR != ''"
Ian Hickson124dc662019-10-18 16:35:39 -0700111 environment:
Greg Spencer99055c72019-11-12 08:04:48 -0800112 # As of November 2019, the tool_tests-general-linux shard got faster with more CPUs up to 4
113 # CPUs, and needed at least 10G of RAM to not run out of memory.
Ian Hickson124dc662019-10-18 16:35:39 -0700114 CPU: 4
Greg Spencer99055c72019-11-12 08:04:48 -0800115 MEMORY: 10G
Christopher Fujino34c977f2020-09-03 13:49:26 -0700116 SHOULD_UPDATE_PACKAGES: "FALSE"
Ian Hickson124dc662019-10-18 16:35:39 -0700117 script:
Sigurd Meldgaardbce36622021-08-30 19:40:10 +0200118 - (cd packages/flutter_tools; dart __deprecated_pub get)
119 - (cd packages/flutter_tools/test/data/asset_test/main; dart __deprecated_pub get)
120 - (cd packages/flutter_tools/test/data/asset_test/font; dart __deprecated_pub get)
121 - (cd dev/bots; dart __deprecated_pub get)
Ian Hickson124dc662019-10-18 16:35:39 -0700122 - dart --enable-asserts ./dev/bots/test.dart
123
124 - name: tool_tests-commands-linux
godofredocd5044372020-08-18 17:01:09 -0700125 only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/**') && $CIRRUS_PR != ''"
Ian Hickson124dc662019-10-18 16:35:39 -0700126 environment:
127 # As of October 2019, the tool_tests-commands-linux shard got faster with more CPUs up to 6
128 # CPUs, and needed at least 8G of RAM to not run out of memory.
Danny Tuppeny92e9f5f2019-11-19 19:52:02 +0000129 # Increased to 10GB on 19th Nov 2019 due to significant number of OOMKilled failures on PR builds.
Ian Hickson124dc662019-10-18 16:35:39 -0700130 CPU: 6
Danny Tuppeny92e9f5f2019-11-19 19:52:02 +0000131 MEMORY: 10G
Christopher Fujino34c977f2020-09-03 13:49:26 -0700132 SHOULD_UPDATE_PACKAGES: "FALSE"
Ian Hickson124dc662019-10-18 16:35:39 -0700133 script:
Sigurd Meldgaardbce36622021-08-30 19:40:10 +0200134 - (cd packages/flutter_tools; dart __deprecated_pub get)
135 - (cd dev/bots; dart __deprecated_pub get)
Ian Hickson124dc662019-10-18 16:35:39 -0700136 - dart --enable-asserts ./dev/bots/test.dart
137
Ian Hickson124dc662019-10-18 16:35:39 -0700138 - name: docs-linux # linux-only
Ian Hickson124dc662019-10-18 16:35:39 -0700139 environment:
Todd Volkert8c5c7202020-07-28 01:07:42 -0700140 CPU: 4
Greg Spencer10e4b042021-08-11 19:48:29 -0700141 MEMORY: 12G
godofredoc7b044222021-02-02 18:04:52 -0800142 only_if: "$CIRRUS_PR != ''"
Ian Hickson124dc662019-10-18 16:35:39 -0700143 script:
Todd Volkert8c5c7202020-07-28 01:07:42 -0700144 - ./dev/bots/docs.sh
Ian Hickson124dc662019-10-18 16:35:39 -0700145
Ian Hickson176ebfd2019-07-10 12:10:28 -0700146 - name: customer_testing-linux
godofredocd5044372020-08-18 17:01:09 -0700147 only_if: "$CIRRUS_PR != ''"
Ian Hickson0b8174e2021-07-02 19:16:04 -0700148 environment:
Ian Hickson124dc662019-10-18 16:35:39 -0700149 # Empirically, this shard runs fine at 1 CPU and 4G RAM as of October 2019. We will probably
150 # want to grow this container when we invite people to add their tests in large numbers.
Ian Hickson0b8174e2021-07-02 19:16:04 -0700151 SHOULD_UPDATE_PACKAGES: "FALSE"
Ian Hickson176ebfd2019-07-10 12:10:28 -0700152 script:
Ian Hickson0b8174e2021-07-02 19:16:04 -0700153 # Cirrus doesn't give us the master branch, so we have to fetch it for ourselves,
154 # otherwise we won't be able to figure out how old or new our current branch is.
155 - git config user.email "cirrus-bot@invalid"
156 - git fetch origin master:master
Ian Hickson0b8174e2021-07-02 19:16:04 -0700157 # The actual logic is in a shell script so that it can be shared between CIs.
158 - (cd dev/customer_testing/; ./ci.sh)
Dan Fieldbb79ff32019-06-26 13:55:16 -0700159
Nurhan Turgut9ba4eb02020-02-24 13:09:21 -0800160 - name: web_smoke_test
godofredoccfe53fd2020-09-21 11:27:06 -0700161 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 != ''"
Nurhan Turgut9ba4eb02020-02-24 13:09:21 -0800162 environment:
163 # Tests Hello World with Flutter Web Engine using Flutter Driver. Should not need more resources.
164 CPU: 2
165 MEMORY: 2G
166 CHROME_NO_SANDBOX: true
167 script:
168 - flutter config --enable-web
169 - git clone https://github.com/flutter/web_installers.git
170 - cd web_installers/packages/web_drivers/
Sigurd Meldgaardbce36622021-08-30 19:40:10 +0200171 - dart __deprecated_pub get
Yegor07a757c2020-10-07 19:07:06 -0700172 - dart lib/web_driver_installer.dart chromedriver --install-only
Nurhan Turgut9ba4eb02020-02-24 13:09:21 -0800173 - chromedriver/chromedriver --port=4444 &
Yegor07a757c2020-10-07 19:07:06 -0700174 - sleep 1
Nurhan Turgut9ba4eb02020-02-24 13:09:21 -0800175 - cd ../../../examples/hello_world/
176 - flutter drive --target=test_driver/smoke_web_engine.dart -d web-server --profile --browser-name=chrome