blob: cae6b499296e0191872600cb7ebd62a6a39a6f97 [file] [log] [blame]
Fedor Korotkov73334592018-05-01 18:11:21 -04001container:
Greg Spencer77645df2018-08-06 17:33:31 -07002 image: gcr.io/flutter-cirrus/build-flutter-image:latest
Fedor Korotkov73334592018-05-01 18:11:21 -04003
4task:
Greg Spencerada1d292018-11-14 12:47:39 -08005 use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
Fedor Korotkov73334592018-05-01 18:11:21 -04006 env:
Greg Spencer77645df2018-08-06 17:33:31 -07007 # Name the SDK directory to include a space so that we constantly
8 # test path names with spaces in them.
Fedor Korotkov73334592018-05-01 18:11:21 -04009 CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
10 PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
Danny Tuppenyc19142d2018-12-17 17:29:09 +000011 ANDROID_SDK_ROOT: "/opt/android_sdk"
Greg Spencer77645df2018-08-06 17:33:31 -070012 git_fetch_script:
Dan Field20e0f132019-03-06 13:13:45 -080013 - git clean -xfd
Greg Spencer77645df2018-08-06 17:33:31 -070014 - git fetch origin
15 - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
Danny Tuppeny07e93b32018-08-02 20:45:07 +010016 pub_cache:
17 folder: $HOME/.pub-cache
18 fingerprint_script: echo $OS; grep -r --include=pubspec.yaml 'PUBSPEC CHECKSUM' "$CIRRUS_WORKING_DIR"
19 flutter_pkg_cache:
20 folder: bin/cache/pkg
21 fingerprint_script: echo $OS; cat bin/internal/engine.version
22 artifacts_cache:
23 folder: bin/cache/artifacts
24 fingerprint_script: echo $OS; cat bin/internal/engine.version
Greg Spencer77645df2018-08-06 17:33:31 -070025 setup_script: ./dev/bots/cirrus_setup.sh
Fedor Korotkov73334592018-05-01 18:11:21 -040026 matrix:
27 - name: docs
Fedor Korotkovd0125d92018-05-03 14:24:02 -040028 env:
29 SHARD: docs
Greg Spencer77645df2018-08-06 17:33:31 -070030 # For uploading master docs to Firebase master branch staging site
Ray Rischpater, KF6GPEd39a7252019-02-21 21:21:43 -080031 FIREBASE_MASTER_TOKEN: ENCRYPTED[eb768d18798fdc5abfe09b224e1724c4d82831d715ccf90df2c79d618c317216cbd99493278361f6fe7948b409b603f0]
Greg Spencer77645df2018-08-06 17:33:31 -070032 # For uploading beta docs to Firebase public live site
Ray Rischpater, KF6GPEd39a7252019-02-21 21:21:43 -080033 FIREBASE_PUBLIC_TOKEN: ENCRYPTED[37e8b82f167864cae9a3f4d2cf3f37dea331d9375c295327c45de524f6c588fa6f6d63e5784f10f6d43ce29689f36c92]
Fedor Korotkov73334592018-05-01 18:11:21 -040034 docs_script: ./dev/bots/docs.sh
Greg Spencer77645df2018-08-06 17:33:31 -070035 - name: deploy_gallery
36 only_if: $CIRRUS_BRANCH == 'dev'
37 depends_on:
38 - docs
39 - analyze
40 - tests-linux
41 - tool_tests-linux
Dan Field72926bd2018-11-29 09:32:11 -080042 - build_tests-linux
Greg Spencer77645df2018-08-06 17:33:31 -070043 env:
44 SHARD: deploy_gallery
45 GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE: ENCRYPTED[d9ac1462c3c556fc2f8165c9d5566a16497d8ebc38a50357f7f3abf136b7f83e1d1d76dde36fee356cb0f9ebf7a89346]
46 ANDROID_GALLERY_UPLOAD_KEY: ENCRYPTED[0b3e681b4507aec433ef29c79b715f15f8c75ecd25315ea286b0b2bcb8b28d578634eead5aa2c54086a25e8da1bb219a]
47 test_script: ./dev/bots/deploy_gallery.sh
Fedor Korotkov73334592018-05-01 18:11:21 -040048 - name: analyze
Greg Spencer1a414992018-07-25 15:19:57 -070049 test_script:
Ian Hickson58939b72019-02-12 12:29:36 -080050 - dart --enable-asserts ./dev/bots/analyze.dart
Fedor Korotkovd0125d92018-05-03 14:24:02 -040051 - name: tests-linux
52 env:
Dan Field20e0f132019-03-06 13:13:45 -080053 GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
Fedor Korotkovd0125d92018-05-03 14:24:02 -040054 SHARD: tests
Greg Spencer1a414992018-07-25 15:19:57 -070055 test_script:
Ian Hickson58939b72019-02-12 12:29:36 -080056 - dart --enable-asserts ./dev/bots/test.dart
Fedor Korotkov73334592018-05-01 18:11:21 -040057 container:
58 cpu: 4
Fedor Korotkov9ae2bad2018-11-16 17:55:14 -050059 memory: 12G
Greg Spencer90a5f462018-07-20 10:21:34 -070060 - name: tool_tests-linux
61 env:
Dan Field20e0f132019-03-06 13:13:45 -080062 GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
Greg Spencer90a5f462018-07-20 10:21:34 -070063 SHARD: tool_tests
Greg Spencer1a414992018-07-25 15:19:57 -070064 test_script:
Ian Hickson58939b72019-02-12 12:29:36 -080065 - dart --enable-asserts ./dev/bots/test.dart
Greg Spencer90a5f462018-07-20 10:21:34 -070066 container:
67 cpu: 4
Fedor Korotkov9ae2bad2018-11-16 17:55:14 -050068 memory: 12G
Dan Field72926bd2018-11-29 09:32:11 -080069 - name: build_tests-linux
Yegor8d643012018-10-08 12:38:46 -070070 env:
Dan Field72926bd2018-11-29 09:32:11 -080071 SHARD: build_tests
Dan Field2a644f32019-03-10 07:52:44 -070072 - name: integration_tests-linux
73 env:
74 SHARD: integration_tests
Yegor8d643012018-10-08 12:38:46 -070075 test_script:
Amir Hardon3782b6a2019-01-03 16:27:47 -080076 # Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they
77 # might include non-ASCII characters which makes Gradle crash.
78 # See: https://github.com/flutter/flutter/issues/24935
79 # This is a temporary workaround until we figure how to properly configure
80 # a UTF8 locale on Cirrus (or until the Gradle bug is fixed).
81 # TODO(amirh): Set the locale to UTF8.
82 - echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt
83 - echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt
84 - export CIRRUS_CHANGE_MESSAGE=""
85 - export CIRRUS_COMMIT_MESSAGE=""
Ian Hickson58939b72019-02-12 12:29:36 -080086 - dart --enable-asserts ./dev/bots/test.dart
Amir Hardon3782b6a2019-01-03 16:27:47 -080087 - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt`
88 - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt`
Yegor8d643012018-10-08 12:38:46 -070089 container:
90 cpu: 4
Fedor Korotkov9ae2bad2018-11-16 17:55:14 -050091 memory: 12G
TL Leee2167b92018-09-06 17:16:22 -040092
Fedor Korotkov73334592018-05-01 18:11:21 -040093
Fedor Korotkovd0125d92018-05-03 14:24:02 -040094task:
Dan Field2a644f32019-03-10 07:52:44 -070095 use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' # && $CIRRUS_PR == ''
Fedor Korotkov73334592018-05-01 18:11:21 -040096 windows_container:
Dan Field2a644f32019-03-10 07:52:44 -070097 image: cirrusci/android-sdk:28-windowsservercore-ltsc2016
Fedor Korotkov67b5ed42018-06-06 11:43:13 -040098 os_version: 2016
99 cpu: 4
Fedor Korotkov73334592018-05-01 18:11:21 -0400100 env:
101 CIRRUS_WORKING_DIR: "C:\\Windows\\Temp\\flutter sdk"
Greg Spencer77645df2018-08-06 17:33:31 -0700102 git_fetch_script:
Dan Field20e0f132019-03-06 13:13:45 -0800103 - git clean -xfd
Greg Spencer77645df2018-08-06 17:33:31 -0700104 - git fetch origin
105 - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
Danny Tuppeny07e93b32018-08-02 20:45:07 +0100106 pub_cache:
107 folder: $APPDATA\Pub\Cache
108 fingerprint_script:
109 - ps: $Env:OS; Get-ChildItem -Path "$Env:CIRRUS_WORKING_DIR" pubspec.yaml -Recurse | Select-String -Pattern "PUBSPEC CHECKSUM" -SimpleMatch
110 flutter_pkg_cache:
111 folder: bin\cache\pkg
112 fingerprint_script: echo %OS% & type bin\internal\engine.version
113 artifacts_cache:
114 folder: bin\cache\artifacts
115 fingerprint_script: echo %OS% & type bin\internal\engine.version
Fedor Korotkov73334592018-05-01 18:11:21 -0400116 setup_script:
117 - bin\flutter.bat config --no-analytics
118 - bin\flutter.bat update-packages
Greg Spencer9f390392018-07-19 23:05:37 -0700119 - git fetch origin master
Greg Spencer1a414992018-07-25 15:19:57 -0700120 test_all_script:
121 - bin\cache\dart-sdk\bin\dart.exe -c dev\bots\test.dart
Danny Tuppenyc3248b72018-08-01 17:34:36 +0100122 matrix:
123 - name: tests-windows
124 env:
Dan Field20e0f132019-03-06 13:13:45 -0800125 GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
Danny Tuppenyc3248b72018-08-01 17:34:36 +0100126 SHARD: tests
127 - name: tool_tests-windows
128 env:
Dan Field20e0f132019-03-06 13:13:45 -0800129 GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
Danny Tuppenyc3248b72018-08-01 17:34:36 +0100130 SHARD: tool_tests
Dan Field72926bd2018-11-29 09:32:11 -0800131 - name: build_tests-windows
132 env:
133 SHARD: build_tests
134 container:
135 cpu: 4
136 memory: 12G
Dan Field2a644f32019-03-10 07:52:44 -0700137 - name: integration_tests-windows
138 env:
139 SHARD: integration_tests
140 container:
141 cpu: 4
142 memory: 12G
Greg Spencer2af2a082018-07-18 15:33:38 -0700143
144task:
Greg Spencer30ba6572019-01-11 07:52:09 -0800145 use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
Greg Spencer77645df2018-08-06 17:33:31 -0700146 name: deploy_gallery-macos
147 only_if: $CIRRUS_BRANCH == 'dev'
148 pub_cache:
149 folder: ~/.pub-cache
Fedor Korotkov8380e202018-08-02 12:58:23 -0400150 depends_on:
151 - analyze
Greg Spencer77645df2018-08-06 17:33:31 -0700152 - tests-macos
153 - tool_tests-macos
Dan Field72926bd2018-11-29 09:32:11 -0800154 - build_tests-macos
Dan Fieldb484a912019-02-23 09:56:27 -0800155 - add2app-macos
Greg Spencer77645df2018-08-06 17:33:31 -0700156 env:
157 # Name the SDK directory to include a space so that we constantly
158 # test path names with spaces in them.
159 CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
160 SHARD: deploy_gallery
161 # Apple Certificates Match Passphrase
162 MATCH_PASSWORD: ENCRYPTED[db07f252234397090e3ec59152d9ec1831f5ecd0ef97d247b1dca757bbb9ef9b7c832a39bce2caf1949ccdf097e59a73]
Greg Spencer3dbcfc72018-10-04 15:59:25 -0700163 # Apple Fastlane password, ASP, and Session information.
Greg Spencer77645df2018-08-06 17:33:31 -0700164 FASTLANE_PASSWORD: ENCRYPTED[0bf9bb0cc2cb32a0ed18470cf2c9df0f587cce5f8b04adbd6cff15ca5bde7a74f721ee580227b132ab6b032f08e52ae0]
Greg Spencer3dbcfc72018-10-04 15:59:25 -0700165 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ENCRYPTED[b219cc13c757f36cb62bfca5102d6115f1cc283aeb974f20c657bc4991c0cc144e30cf5d8183e41cc1df1668b4d14210]
166 FASTLANE_SESSION: ENCRYPTED[88246e355e55cd5e361a575f5d5b762f5826cb9d5285cb93a263b1cad04ec09bdedb1cbd74df5ec02d6043360fa04acd]
Greg Spencer77645df2018-08-06 17:33:31 -0700167 # Private repo for publishing certificates.
168 PUBLISHING_MATCH_CERTIFICATE_REPO: git@github.com:flutter/private_publishing_certificates.git
Greg Spencer2af2a082018-07-18 15:33:38 -0700169 osx_instance:
Reece Dunhamd4474122019-03-06 12:35:27 -0500170 image: mojave-xcode-10.1
Dan Field0360d0f2019-03-08 07:08:32 -0800171 # occasionally the clock on these machines is out of sync
172 # with the actual time - this should help to verify
173 print_date_script:
174 - date
Greg Spencer77645df2018-08-06 17:33:31 -0700175 git_fetch_script:
Dan Field20e0f132019-03-06 13:13:45 -0800176 - git clean -xfd
Greg Spencer68e03002018-08-08 09:54:56 -0700177 - git fetch origin
178 - git fetch origin master # To set FETCH_HEAD
Greg Spencer77645df2018-08-06 17:33:31 -0700179 setup_script:
180 - bin/flutter config --no-analytics
181 - bin/flutter update-packages
182 test_all_script:
183 - ./dev/bots/deploy_gallery.sh
184
185task:
Greg Spencer30ba6572019-01-11 07:52:09 -0800186 use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
Greg Spencer77645df2018-08-06 17:33:31 -0700187 osx_instance:
Dan Fieldb484a912019-02-23 09:56:27 -0800188 image: mojave-xcode-10.1
Greg Spencer77645df2018-08-06 17:33:31 -0700189 depends_on:
190 - analyze
Danny Tuppeny766982a2018-08-01 21:32:06 +0100191 env:
192 CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
Dan Fieldb484a912019-02-23 09:56:27 -0800193 COCOAPODS_DISABLE_STATS: true
Dan Field2a644f32019-03-10 07:52:44 -0700194 ANDROID_SDK_TOOLS_URL: https://dl.google.com/android/repository/sdk-tools-darwin-4333796.zip
195 ANDROID_SDK_ROOT: $HOME/Android
196 ANDROID_HOME: $HOME/Android
197 OPEN_JDK_URL: https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u202-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u202b08.tar.gz
198 OPEN_JDK_REVISION: jdk8u202-b08
199 JAVA_HOME: $HOME/Java/$OPEN_JDK_REVISION/Contents/Home
200 PATH: "$PATH:$JAVA_HOME/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/platform-tools"
Dan Field0360d0f2019-03-08 07:08:32 -0800201 # occasionally the clock on these machines is out of sync
202 # with the actual time - this should help to verify
203 print_date_script:
204 - date
Dan Field72926bd2018-11-29 09:32:11 -0800205 install_cocoapods_script:
206 - sudo gem install cocoapods
Greg Spencer77645df2018-08-06 17:33:31 -0700207 git_fetch_script:
Dan Field20e0f132019-03-06 13:13:45 -0800208 - git clean -xfd
Greg Spencer77645df2018-08-06 17:33:31 -0700209 - git fetch origin
210 - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
Danny Tuppeny07e93b32018-08-02 20:45:07 +0100211 pub_cache:
212 folder: $HOME/.pub-cache
213 fingerprint_script: echo $OS; grep -r --include=pubspec.yaml 'PUBSPEC CHECKSUM' "$CIRRUS_WORKING_DIR"
214 flutter_pkg_cache:
215 folder: bin/cache/pkg
216 fingerprint_script: echo $OS; cat bin/internal/engine.version
217 artifacts_cache:
218 folder: bin/cache/artifacts
219 fingerprint_script: echo $OS; cat bin/internal/engine.version
Dan Field2a644f32019-03-10 07:52:44 -0700220 # TODO(dnfield): If the OSX image starts including this, we can remove it. https://github.com/cirruslabs/osx-images/issues/3
221 open_jdk_cache:
222 folder: $HOME/Java
223 fingerprint_script: echo $OPEN_JDK_URL; cat dev/bots/download_open_jdk.sh
224 populate_script: dev/bots/download_open_jdk.sh
225 # TODO(dnfield): If the OSX image starts including this, we can remove it. https://github.com/cirruslabs/osx-images/issues/3
226 android_sdk_cache:
227 folder: $ANDROID_SDK_ROOT
228 fingerprint_script: echo $ANDROID_SDK_TOOLS_URL; cat dev/bots/download_android_sdk.sh
229 populate_script: dev/bots/download_android_sdk.sh
Greg Spencer2af2a082018-07-18 15:33:38 -0700230 setup_script:
231 - bin/flutter config --no-analytics
232 - bin/flutter update-packages
Greg Spencer9f390392018-07-19 23:05:37 -0700233 test_all_script: |
234 ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
Ian Hickson58939b72019-02-12 12:29:36 -0800235 bin/cache/dart-sdk/bin/dart --enable-asserts dev/bots/test.dart
Danny Tuppenyc3248b72018-08-01 17:34:36 +0100236 matrix:
237 - name: tests-macos
238 env:
Dan Field20e0f132019-03-06 13:13:45 -0800239 GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
Danny Tuppenyc3248b72018-08-01 17:34:36 +0100240 SHARD: tests
241 - name: tool_tests-macos
242 env:
Dan Field20e0f132019-03-06 13:13:45 -0800243 GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
Danny Tuppenyc3248b72018-08-01 17:34:36 +0100244 SHARD: tool_tests
Dan Field72926bd2018-11-29 09:32:11 -0800245 - name: build_tests-macos
246 env:
247 SHARD: build_tests
248 COCOAPODS_DISABLE_STATS: true
249 FLUTTER_FRAMEWORK_DIR: "/tmp/flutter sdk/bin/cache/artifacts/engine/ios/"
250 container:
251 cpu: 4
252 memory: 12G
Dan Field2a644f32019-03-10 07:52:44 -0700253 - name: integration_tests-macos
254 env:
255 SHARD: integration_tests
256 container:
257 cpu: 4
258 memory: 12G
Dan Fieldb484a912019-02-23 09:56:27 -0800259 - name: add2app-macos
260 env:
261 SHARD: add2app_test
Greg Spencer77645df2018-08-06 17:33:31 -0700262
263docker_builder:
264 # Only build a new docker image when we tag a release (for dev, beta, or release.)
265 only_if: $CIRRUS_TAG != ''
266 env:
267 GCLOUD_CREDENTIALS: ENCRYPTED[f7c098d4dd7f5ee1bfee0bb7e944cce72efbe10e97ad6440ae72de4de6a1c24d23f421a2619c668e94377fb64b0bb3e6]
268 depends_on:
269 - docs
270 - analyze
271 - tests-linux
272 - tool_tests-linux
Dan Field72926bd2018-11-29 09:32:11 -0800273 - build_tests-linux
Dan Field2a644f32019-03-10 07:52:44 -0700274 - integration_tests-linux
Greg Spencer77645df2018-08-06 17:33:31 -0700275 build_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_build.sh"
276 login_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_login.sh"
277 push_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_push.sh"