mirror of
https://github.com/flutter/flutter
synced 2024-10-14 04:02:56 +00:00
3782b6abf2
Cirrus puts the PR description and commit message in environment variables. These messages tend to have non ASCII characters sometimes (like emojis), which triggers a Gradle bug (gradle/gradle#3117) resulting in Gradle crashing without a helpful error message. The real solution to this problem should be fixing the Gradle bug. The better workaround on the Flutter side would be to set a UTF8 locale on the Cirrus machine, but I have yet figured out how to do it. For now to avoid more people from hitting this I'm working around by temporarily unsetting the Cirrus environment variables with the PR description and commit message. A non ASCII character to make sure it works: 😄
228 lines
8.2 KiB
YAML
228 lines
8.2 KiB
YAML
container:
|
|
image: gcr.io/flutter-cirrus/build-flutter-image:latest
|
|
|
|
task:
|
|
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
|
|
env:
|
|
# Name the SDK directory to include a space so that we constantly
|
|
# test path names with spaces in them.
|
|
CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
|
|
PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
|
|
ANDROID_SDK_ROOT: "/opt/android_sdk"
|
|
git_fetch_script:
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
|
|
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/engine.version
|
|
artifacts_cache:
|
|
folder: bin/cache/artifacts
|
|
fingerprint_script: echo $OS; cat bin/internal/engine.version
|
|
setup_script: ./dev/bots/cirrus_setup.sh
|
|
matrix:
|
|
- name: docs
|
|
env:
|
|
SHARD: docs
|
|
# For uploading master docs to Firebase master branch staging site
|
|
FIREBASE_MASTER_TOKEN: ENCRYPTED[37e8b82f167864cae9a3f4d2cf3f37dea331d9375c295327c45de524f6c588fa6f6d63e5784f10f6d43ce29689f36c92]
|
|
# For uploading beta docs to Firebase public live site
|
|
FIREBASE_PUBLIC_TOKEN: ENCRYPTED[c422da192f06da7b4449ca8e7aa866dabeb8a0f8d7488497c2e7e447e6fd31d917e6c813db081dc4e2a7a63afdf41864]
|
|
docs_script: ./dev/bots/docs.sh
|
|
- name: deploy_gallery
|
|
only_if: $CIRRUS_BRANCH == 'dev'
|
|
depends_on:
|
|
- docs
|
|
- analyze
|
|
- tests-linux
|
|
- tool_tests-linux
|
|
- build_tests-linux
|
|
env:
|
|
SHARD: deploy_gallery
|
|
GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE: ENCRYPTED[d9ac1462c3c556fc2f8165c9d5566a16497d8ebc38a50357f7f3abf136b7f83e1d1d76dde36fee356cb0f9ebf7a89346]
|
|
ANDROID_GALLERY_UPLOAD_KEY: ENCRYPTED[0b3e681b4507aec433ef29c79b715f15f8c75ecd25315ea286b0b2bcb8b28d578634eead5aa2c54086a25e8da1bb219a]
|
|
test_script: ./dev/bots/deploy_gallery.sh
|
|
- name: analyze
|
|
test_script:
|
|
- dart ./dev/bots/analyze.dart
|
|
- name: tests-linux
|
|
env:
|
|
SHARD: tests
|
|
test_script:
|
|
- dart ./dev/bots/test.dart
|
|
container:
|
|
cpu: 4
|
|
memory: 12G
|
|
- name: tool_tests-linux
|
|
env:
|
|
SHARD: tool_tests
|
|
test_script:
|
|
- dart ./dev/bots/test.dart
|
|
container:
|
|
cpu: 4
|
|
memory: 12G
|
|
- name: build_tests-linux
|
|
env:
|
|
SHARD: build_tests
|
|
test_script:
|
|
# 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
|
|
# This is a temporary workaround until we figure how to properly configure
|
|
# a UTF8 locale on Cirrus (or until the Gradle bug is fixed).
|
|
# TODO(amirh): Set the locale to UTF8.
|
|
- echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt
|
|
- echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt
|
|
- export CIRRUS_CHANGE_MESSAGE=""
|
|
- export CIRRUS_COMMIT_MESSAGE=""
|
|
- dart ./dev/bots/test.dart
|
|
- export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt`
|
|
- export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt`
|
|
container:
|
|
cpu: 4
|
|
memory: 12G
|
|
- name: codelabs-build-test
|
|
env:
|
|
SHARD: codelabs-build-test
|
|
build_test_script: ./dev/bots/codelabs_build_test.sh
|
|
|
|
|
|
task:
|
|
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
|
|
windows_container:
|
|
image: cirrusci/windowsservercore:2016
|
|
os_version: 2016
|
|
cpu: 4
|
|
env:
|
|
CIRRUS_WORKING_DIR: "C:\\Windows\\Temp\\flutter sdk"
|
|
git_fetch_script:
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
|
|
pub_cache:
|
|
folder: $APPDATA\Pub\Cache
|
|
fingerprint_script:
|
|
- ps: $Env:OS; Get-ChildItem -Path "$Env: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\engine.version
|
|
artifacts_cache:
|
|
folder: bin\cache\artifacts
|
|
fingerprint_script: echo %OS% & type bin\internal\engine.version
|
|
setup_script:
|
|
- bin\flutter.bat config --no-analytics
|
|
- bin\flutter.bat update-packages
|
|
- git fetch origin master
|
|
test_all_script:
|
|
- bin\cache\dart-sdk\bin\dart.exe -c dev\bots\test.dart
|
|
matrix:
|
|
- name: tests-windows
|
|
env:
|
|
SHARD: tests
|
|
- name: tool_tests-windows
|
|
env:
|
|
SHARD: tool_tests
|
|
- name: build_tests-windows
|
|
env:
|
|
SHARD: build_tests
|
|
container:
|
|
cpu: 4
|
|
memory: 12G
|
|
|
|
task:
|
|
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
|
|
name: deploy_gallery-macos
|
|
only_if: $CIRRUS_BRANCH == 'dev'
|
|
pub_cache:
|
|
folder: ~/.pub-cache
|
|
depends_on:
|
|
- analyze
|
|
- tests-macos
|
|
- tool_tests-macos
|
|
- build_tests-macos
|
|
env:
|
|
# Name the SDK directory to include a space so that we constantly
|
|
# test path names with spaces in them.
|
|
CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
|
|
SHARD: deploy_gallery
|
|
# Apple Certificates Match Passphrase
|
|
MATCH_PASSWORD: ENCRYPTED[db07f252234397090e3ec59152d9ec1831f5ecd0ef97d247b1dca757bbb9ef9b7c832a39bce2caf1949ccdf097e59a73]
|
|
# Apple Fastlane password, ASP, and Session information.
|
|
FASTLANE_PASSWORD: ENCRYPTED[0bf9bb0cc2cb32a0ed18470cf2c9df0f587cce5f8b04adbd6cff15ca5bde7a74f721ee580227b132ab6b032f08e52ae0]
|
|
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ENCRYPTED[b219cc13c757f36cb62bfca5102d6115f1cc283aeb974f20c657bc4991c0cc144e30cf5d8183e41cc1df1668b4d14210]
|
|
FASTLANE_SESSION: ENCRYPTED[88246e355e55cd5e361a575f5d5b762f5826cb9d5285cb93a263b1cad04ec09bdedb1cbd74df5ec02d6043360fa04acd]
|
|
# Private repo for publishing certificates.
|
|
PUBLISHING_MATCH_CERTIFICATE_REPO: git@github.com:flutter/private_publishing_certificates.git
|
|
osx_instance:
|
|
image: high-sierra-xcode-9.4.1
|
|
git_fetch_script:
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD
|
|
setup_script:
|
|
- bin/flutter config --no-analytics
|
|
- bin/flutter update-packages
|
|
test_all_script:
|
|
- ./dev/bots/deploy_gallery.sh
|
|
|
|
task:
|
|
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
|
|
osx_instance:
|
|
image: high-sierra-xcode-9.4.1
|
|
depends_on:
|
|
- analyze
|
|
env:
|
|
CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
|
|
install_cocoapods_script:
|
|
- sudo gem install cocoapods
|
|
git_fetch_script:
|
|
- git fetch origin
|
|
- git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
|
|
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/engine.version
|
|
artifacts_cache:
|
|
folder: bin/cache/artifacts
|
|
fingerprint_script: echo $OS; cat bin/internal/engine.version
|
|
setup_script:
|
|
- bin/flutter config --no-analytics
|
|
- bin/flutter update-packages
|
|
test_all_script: |
|
|
ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
|
|
bin/cache/dart-sdk/bin/dart -c dev/bots/test.dart
|
|
matrix:
|
|
- name: tests-macos
|
|
env:
|
|
SHARD: tests
|
|
- name: tool_tests-macos
|
|
env:
|
|
SHARD: tool_tests
|
|
- name: build_tests-macos
|
|
env:
|
|
SHARD: build_tests
|
|
COCOAPODS_DISABLE_STATS: true
|
|
FLUTTER_FRAMEWORK_DIR: "/tmp/flutter sdk/bin/cache/artifacts/engine/ios/"
|
|
container:
|
|
cpu: 4
|
|
memory: 12G
|
|
|
|
|
|
docker_builder:
|
|
# Only build a new docker image when we tag a release (for dev, beta, or release.)
|
|
only_if: $CIRRUS_TAG != ''
|
|
env:
|
|
GCLOUD_CREDENTIALS: ENCRYPTED[f7c098d4dd7f5ee1bfee0bb7e944cce72efbe10e97ad6440ae72de4de6a1c24d23f421a2619c668e94377fb64b0bb3e6]
|
|
depends_on:
|
|
- docs
|
|
- analyze
|
|
- tests-linux
|
|
- tool_tests-linux
|
|
- build_tests-linux
|
|
build_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_build.sh"
|
|
login_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_login.sh"
|
|
push_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_push.sh"
|
|
|