flutter/.cirrus.yml
Greg Spencer 10e4b04010
Switch document generation to use the snippets package (#87231)
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.
2021-08-11 19:48:29 -07:00

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