mirror of
https://github.com/flutter/flutter
synced 2024-10-13 03:32:55 +00:00
10e4b04010
Switch document generation to use the snippets package instead of the snippets code in the Flutter repo. In the process, some bugs in sample code analysis have been fixed, and I've fixed some more errors in the samples. This will allow the snippets package to be developed separately from the Flutter repo, and reduce the code in the Flutter repo. The snippets code is deleted in this PR. I also converted some comments in the snippet templates to be regular comments instead of doc comments, because having a doc comment block before the imports causes the Dart import sorter to lose the comment. They should have been regular comments in the first place. The snippets package resides in the assets-for-api-docs repo. The sample analysis has also been converted to be run in parallel, and I've bumped the Dartdoc version to 1.0.2.
177 lines
8.1 KiB
YAML
177 lines
8.1 KiB
YAML
# 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[!0e63b52bd7e4fda1cd7b7bf2b4fe515a27fadbeaced01f5ad8b699b81d3611ed64c5d3271bcd8426dd914ef41cba48a0!]
|
|
|
|
# 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: 12G
|
|
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
|