diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 54bff38..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-# ENVIRONMENTS
-os:
-  - linux
-  - osx
-osx_image: xcode9.2
-env:
-  - SHARD=analyze
-  - SHARD=tests
-  - SHARD=tool_tests
-  - SHARD=docs
-  - SHARD=build_and_deploy_gallery
-matrix:
-  exclude:
-  - os: osx
-    env: SHARD=analyze
-  - os: osx
-    env: SHARD=docs
-sudo: false
-filter_secrets: false
-
-# INSTALLATION
-addons:
-  apt:
-    # sky_shell binary depends on /usr/lib/x86_64-linux-gnu/libstdc++.so.6 version GLIBCXX_3.4.18
-    sources:
-      - ubuntu-toolchain-r-test # if we don't specify this, the libstdc++6 we get is the wrong version
-    packages:
-      - lib32stdc++6
-      - libstdc++6
-      - fonts-droid
-language: node_js
-node_js:
-  - "8.1"
-git:
-  # We rely on git tags for determining the version.
-  depth: false
-cache:
-  bundler: true
-  directories:
-    - $HOME/.pub-cache
-install:
-  - ./dev/bots/travis_install.sh
-
-# TESTING
-before_script:
-  - ./dev/bots/travis_setup.sh
-script:
-  - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
-  - ./dev/bots/travis_script.sh
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 43fca9b..9404ad7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,7 +1,7 @@
 Contributing to Flutter
 =======================
 
-[![Build Status](https://travis-ci.org/flutter/flutter.svg)](https://travis-ci.org/flutter/flutter)
+[![Build Status](https://api.cirrus-ci.com/github/flutter/flutter.svg)](https://cirrus-ci.org/flutter/flutter)
 
 _See also: [Flutter's code of conduct](https://flutter.io/design-principles/#code-of-conduct)_
 
@@ -129,7 +129,7 @@
 option to start the test in a paused state and wait for connection from a debugger. This option lets you
 set breakpoints before the test runs.
 
-To run all the tests for the entire Flutter repository, the same way that Travis runs them, run `dart dev/bots/test.dart`.
+To run all the tests for the entire Flutter repository, the same way that Cirrus runs them, run `dart dev/bots/test.dart`.
 
 If you've built [your own flutter engine](#working-on-the-engine-and-the-framework-at-the-same-time), you
 can pass `--local-engine` to change what flutter shell `flutter test` uses. For example,
@@ -190,7 +190,7 @@
 Please make sure all your checkins have detailed commit messages explaining the patch.
 
 Once you've gotten an LGTM from a project maintainer and once your PR has received
-the green light from all our automated testing (Travis, Appveyor, etc), and once
+the green light from all our automated testing (running on Cirrus, etc), and once
 the tree is green (see the [design principles](https://flutter.io/design-principles/)
 document for more details), submit your changes to the `master` branch using one of
 the following methods:
@@ -285,7 +285,6 @@
 
 We build and test Flutter on:
 
-- Travis ([details](.travis.yml))
-- AppVeyor ([details](appveyor.yml))
+- [Cirrus](https://cirrus-ci.com/) ([details](.cirrus.yml))
 - Chromebots (a.k.a. "recipes", [details](dev/bots/README.md))
 - Devicelab (a.k.a. "cocoon", [details](dev/devicelab/README.md))
diff --git a/README.md b/README.md
index 67b7fd9..d20e096 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
-# <img src="https://flutter.io/images/flutter-mark-square-100.png" alt="Flutter" width="40" height="40" /> Flutter [![Join Gitter Chat Channel -](https://badges.gitter.im/flutter/flutter.svg)](https://gitter.im/flutter/flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status - Travis](https://travis-ci.org/flutter/flutter.svg?branch=master)](https://travis-ci.org/flutter/flutter) [![Build Status - AppVeyor](https://ci.appveyor.com/api/projects/status/meyi9evcny64a2mg/branch/master?svg=true)](https://ci.appveyor.com/project/flutter/flutter/branch/master) [![Build Status - Cirrus](https://api.cirrus-ci.com/github/flutter/flutter.svg)](https://cirrus-ci.com/github/flutter/flutter) [![Coverage Status -](https://coveralls.io/repos/github/flutter/flutter/badge.svg?branch=master)](https://coveralls.io/github/flutter/flutter?branch=master)
+# <img src="https://flutter.io/images/flutter-mark-square-100.png" alt="Flutter" width="40" height="40" /> Flutter [![Join Gitter Chat Channel -](https://badges.gitter.im/flutter/flutter.svg)](https://gitter.im/flutter/flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+[![Build Status - Cirrus](https://api.cirrus-ci.com/github/flutter/flutter.svg)](https://cirrus-ci.com/github/flutter/flutter)
+[![Coverage Status -](https://coveralls.io/repos/github/flutter/flutter/badge.svg?branch=master)](https://coveralls.io/github/flutter/flutter?branch=master)
 
 A new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android. Flutter is an open-source project currently in beta.
 
diff --git a/bin/flutter b/bin/flutter
index 7aecf5c..f5c4da1 100755
--- a/bin/flutter
+++ b/bin/flutter
@@ -85,16 +85,16 @@
   fi
 
   local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
-  if [[ ! -f "$SNAPSHOT_PATH" ]] || [[ ! -s "$STAMP_PATH" ]] || [[ "$(cat "$STAMP_PATH")" != "$revision" ]] || [[ "$FLUTTER_TOOLS_DIR/pubspec.yaml" -nt "$FLUTTER_TOOLS_DIR/pubspec.lock" ]]; then
+  if [[ ! -f "$SNAPSHOT_PATH" || ! -s "$STAMP_PATH" || "$(cat "$STAMP_PATH")" != "$revision" || "$FLUTTER_TOOLS_DIR/pubspec.yaml" -nt "$FLUTTER_TOOLS_DIR/pubspec.lock" ]]; then
     rm -f "$FLUTTER_ROOT/version"
     touch "$FLUTTER_ROOT/bin/cache/.dartignore"
     "$FLUTTER_ROOT/bin/internal/update_dart_sdk.sh"
-    VERBOSITY=--verbosity=error
+    VERBOSITY="--verbosity=error"
 
     echo Building flutter tool...
-    if [[ "$TRAVIS" == "true" ]] || [[ "$BOT" == "true" ]] || [[ "$CONTINUOUS_INTEGRATION" == "true" ]] || [[ "$CHROME_HEADLESS" == "1" ]] || [[ "$APPVEYOR" == "true" ]] || [[ "$CI" == "true" ]]; then
+    if [[ "$CI" == "true" || "$BOT" == "true" || "$CONTINUOUS_INTEGRATION" == "true" || "$CHROME_HEADLESS" == "1" ]]; then
       PUB_ENVIRONMENT="$PUB_ENVIRONMENT:flutter_bot"
-      VERBOSITY=--verbosity=all
+      VERBOSITY="--verbosity=all"
     fi
     export PUB_ENVIRONMENT="$PUB_ENVIRONMENT:flutter_install"
 
@@ -104,8 +104,8 @@
 
     while : ; do
       cd "$FLUTTER_TOOLS_DIR"
-      "$PUB" upgrade $VERBOSITY --no-packages-dir && break
-      echo Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds...
+      "$PUB" upgrade "$VERBOSITY" --no-packages-dir && break
+      echo "Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds..."
       sleep 5
     done
     "$DART" --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
@@ -132,7 +132,7 @@
 PUB="$DART_SDK_PATH/bin/pub"
 
 # Test if running as superuser – but don't warn if running within Docker
-if [[ "$EUID" == "0" ]] && ! [[ -f /.dockerenv ]]; then
+if [[ "$EUID" == "0" && ! -f /.dockerenv ]]; then
   echo "   Woah! You appear to be trying to run flutter as root."
   echo "   We strongly recommend running the flutter tool without superuser privileges."
   echo "  /"
@@ -160,12 +160,14 @@
 (upgrade_flutter) 3< "$PROG_NAME"
 
 set +e
+# FLUTTER_TOOL_ARGS isn't quoted below, because it is meant to be considered as
+# separate space-separated args.
 "$DART" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
 
 # The VM exits with code 253 if the snapshot version is out-of-date.
 # If it is, we need to snapshot it again.
 EXIT_CODE=$?
-if [[ $EXIT_CODE -ne 253 ]]; then
+if [[ $EXIT_CODE != 253 ]]; then
   exit $EXIT_CODE
 fi
 
diff --git a/bin/flutter.bat b/bin/flutter.bat
index 4764703..fd458cf 100644
--- a/bin/flutter.bat
+++ b/bin/flutter.bat
@@ -119,12 +119,10 @@
     REM Makes changes to PUB_ENVIRONMENT only visible to commands within SETLOCAL/ENDLOCAL
     SETLOCAL
       SET VERBOSITY=--verbosity=error
-      IF "%TRAVIS%" == "true" GOTO on_bot
+      IF "%CI%" == "true" GOTO on_bot
       IF "%BOT%" == "true" GOTO on_bot
       IF "%CONTINUOUS_INTEGRATION%" == "true" GOTO on_bot
       IF "%CHROME_HEADLESS%" == "1" GOTO on_bot
-      IF "%APPVEYOR%" == "true" GOTO on_bot
-      IF "%CI%" == "true" GOTO on_bot
       GOTO not_on_bot
       :on_bot
         SET PUB_ENVIRONMENT=%PUB_ENVIRONMENT%:flutter_bot
@@ -135,7 +133,7 @@
         IF EXIST "%pub_cache_path%" SET PUB_CACHE=%pub_cache_path%
       )
       :retry_pub_upgrade
-      CALL "%pub%" upgrade %VERBOSITY% --no-packages-dir
+      CALL "%pub%" upgrade "%VERBOSITY%" --no-packages-dir
       IF "%ERRORLEVEL%" NEQ "0" (
         ECHO Error: Unable to 'pub upgrade' flutter tool. Retrying in five seconds...
         timeout /t 5 /nobreak
diff --git a/dev/bots/README.md b/dev/bots/README.md
index 9ecef48..a340fd1 100644
--- a/dev/bots/README.md
+++ b/dev/bots/README.md
@@ -3,16 +3,22 @@
 This directory exists to support building Flutter on our build infrastructure.
 
 The results of such builds are viewable at:
+* https://cirrus-ci.com/github/flutter/flutter/master
+  - Testing done on PRs and submitted changes on GitHub.
 * https://build.chromium.org/p/client.flutter/console
-* https://travis-ci.org/flutter/flutter/builds (limited checking used just for PRs on github)
+  - Additional testing and processing done after changes are submitted.
 
-The external master pages for the chromium infra bots do not allow
+The external master pages for the Chromium infra bots do not allow
 forcing new builds. Contact @eseidelGoogle or another member of
 Google's Flutter team if you need to do that.
 
-The Travis-based bots are trivial, and just run a couple of shell
-scripts. The rest of this document discusses only the chromium infra
-bots.
+The [Cirrus](https://cirrus-ci.org)-based bots run the [`test.dart`](test.dart)
+script for each PR and submission. It does testing for the tools, for the
+framework, and (for submitted changes only) rebuilds and updates the master
+branch API docs staging site. For tagged dev and beta builds, it also builds and
+deploys the gallery app to the app stores.
+
+The rest of this document discusses only the Chromium infra bots.
 
 This infrastructure is broken into two parts. A buildbot master specified by our
 [builders.pyl](https://chromium.googlesource.com/chromium/tools/build.git/+/master/masters/master.client.flutter/builders.pyl)
diff --git a/dev/bots/docs.sh b/dev/bots/docs.sh
index 8bae3ca..6b68da8 100755
--- a/dev/bots/docs.sh
+++ b/dev/bots/docs.sh
@@ -75,7 +75,7 @@
 # Ensure google webmaster tools can verify our site.
 cp "$FLUTTER_ROOT/dev/docs/google2ed1af765c529f57.html" "$FLUTTER_ROOT/dev/docs/doc"
 
-# Upload new API docs when on Travis
+# Upload new API docs when running on Cirrus
 if [[ -n "$CIRRUS_CI" && -z "$CIRRUS_PR" ]]; then
   echo "This is not a pull request; considering whether to upload docs... (branch=$CIRRUS_BRANCH)"
   if [[ "$CIRRUS_BRANCH" == "master" || "$CIRRUS_BRANCH" == "beta" ]]; then
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index b9c4d50..b29beba 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -33,8 +33,8 @@
   'tests': _runTests,
   'tool_tests': _runToolTests,
   'coverage': _runCoverage,
-  // 'docs': handled by travis_script.sh and docs.sh
-  // 'build_and_deploy_gallery': handled by travis_script.sh
+  // 'docs': handled by docs.sh
+  // 'build_and_deploy_gallery': handled by deploy_gallery.sh
 };
 
 const Duration _kLongTimeout = Duration(minutes: 45);
diff --git a/dev/bots/travis_install.sh b/dev/bots/travis_install.sh
deleted file mode 100755
index bbe52f8..0000000
--- a/dev/bots/travis_install.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-set -ex
-
-function retry {
-  local total_tries=$1
-  local remaining_tries=$total_tries
-  shift
-  while [ $remaining_tries -gt 0 ]; do
-    "$@" && break
-    remaining_tries=$(($remaining_tries - 1))
-    sleep 5
-  done
-
-  [ $remaining_tries -eq 0 ] && {
-    echo "Command still failed after $total_tries tries: $@"
-    return 1
-  }
-  return 0
-}
-
-if [ -n "$TRAVIS" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
-  gem install coveralls-lcov
-  gem install bundler
-  retry 5 npm install -g firebase-tools@">=3.6.1 <3.7.0"
-fi
diff --git a/dev/bots/travis_script.sh b/dev/bots/travis_script.sh
deleted file mode 100755
index f85bc3e..0000000
--- a/dev/bots/travis_script.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-export PATH="$PWD/bin:$PWD/bin/cache/dart-sdk/bin:$PATH"
-
-if [ "$SHARD" = "build_and_deploy_gallery" ]; then
-  version=$(<version)
-  echo "Building and deploying Flutter Gallery $version"
-  if [ "$TRAVIS_OS_NAME" = "linux" ]; then
-    echo "Building Flutter Gallery for Android..."
-    export ANDROID_HOME=`pwd`/android-sdk
-    (
-      cd examples/flutter_gallery
-      flutter build apk --release -t lib/main_publish.dart
-    )
-    echo "Android Flutter Gallery built"
-    if [[ "$TRAVIS_PULL_REQUEST" == "false" && "$TRAVIS_BRANCH" == "dev" && $version != *"pre"* ]]; then
-      echo "Deploying to Play Store..."
-      (
-        cd examples/flutter_gallery/android
-        bundle install
-        bundle exec fastlane deploy_play_store
-      )
-    else
-      echo "Flutter Gallery is only deployed to the Play Store on merged and tagged dev branch commits"
-    fi
-  elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
-    echo "Building Flutter Gallery for iOS..."
-    (
-      cd examples/flutter_gallery
-      flutter build ios --release --no-codesign -t lib/main_publish.dart
-    )
-    echo "iOS Flutter Gallery built"
-    if [[ "$TRAVIS_PULL_REQUEST" == "false" ]]; then
-      if [[ "$TRAVIS_BRANCH" == "dev" && $version != *"pre"* ]]; then
-        echo "Archiving with distribution profile and deploying to TestFlight..."
-        (
-          cd examples/flutter_gallery/ios
-          bundle install
-          bundle exec fastlane build_and_deploy_testflight upload:true
-        )
-      else
-        echo "Archiving with distribution profile..."
-        (
-          cd examples/flutter_gallery/ios
-          bundle install
-          bundle exec fastlane build_and_deploy_testflight
-        )
-        echo "Archive is only deployed to TestFlight on tagged dev branch commits"
-      fi
-    else
-      echo "Flutter Gallery is only deployed to the TestFlight on merged and tagged dev branch commits"
-    fi
-  fi
-elif [ "$SHARD" = "docs" ]; then
-  if [ "$TRAVIS_OS_NAME" = "linux" ]; then
-    # Generate the API docs, upload them
-    ./dev/bots/docs.sh
-  fi
-else
-  TEST_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE}" dart ./dev/bots/test.dart
-fi
diff --git a/dev/bots/travis_setup.sh b/dev/bots/travis_setup.sh
deleted file mode 100755
index ec3146b..0000000
--- a/dev/bots/travis_setup.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-set -e
-
-echo $KEY_FILE | base64 --decode > ../gcloud_key_file.json
-
-set -x
-
-if [ -n "$TRAVIS" ]; then
-  # Only used to upload docs. Don't install gcloud SDK otherwise.
-  if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$SHARD" = "docs" ]; then
-    export CLOUDSDK_CORE_DISABLE_PROMPTS=1
-    echo "Installing Google Cloud SDK..."
-    curl https://sdk.cloud.google.com | bash > /dev/null
-    echo "Google Cloud SDK installation completed."
-  fi
-
-  # Android SDK only needed to build the gallery on build_and_deploy_gallery Linux shard.
-  if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$SHARD" = "build_and_deploy_gallery" ]; then
-    # Background for not using Travis's built-in Android tags
-    # https://github.com/flutter/plugins/pull/145
-    # Copied from https://github.com/flutter/plugins/blame/master/.travis.yml
-    wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
-    mkdir android-sdk
-    unzip -qq sdk-tools-linux-3859397.zip -d android-sdk
-    export ANDROID_HOME=`pwd`/android-sdk
-    export PATH=`pwd`/android-sdk/tools/bin:$PATH
-    mkdir -p /home/travis/.android # silence sdkmanager warning
-    set +x # Travis's env variable hiding is a bit wonky. Don't echo back this line.
-    if [ -n "$ANDROID_GALLERY_UPLOAD_KEY" ]; then
-      echo "$ANDROID_GALLERY_UPLOAD_KEY" | base64 --decode > /home/travis/.android/debug.keystore
-    fi
-    set -x
-    echo 'count=0' > /home/travis/.android/repositories.cfg # silence sdkmanager warning
-    # suppressing output of sdkmanager to keep log under 4MB (travis limit)
-    echo y | sdkmanager "tools" >/dev/null
-    echo y | sdkmanager "platform-tools" >/dev/null
-    echo y | sdkmanager "build-tools;27.0.3" >/dev/null
-    echo y | sdkmanager "platforms;android-27" >/dev/null
-    echo y | sdkmanager "extras;android;m2repository" >/dev/null
-    echo y | sdkmanager "extras;google;m2repository" >/dev/null
-    echo y | sdkmanager "patcher;v4" >/dev/null
-    sdkmanager --list
-    wget http://services.gradle.org/distributions/gradle-4.4-bin.zip
-    unzip -qq gradle-4.4-bin.zip
-    export GRADLE_HOME=$PWD/gradle-4.4
-    export PATH=$GRADLE_HOME/bin:$PATH
-    gradle -v
-    ./bin/flutter doctor
-  fi
-fi
-
-# rename the SDK directory to include a space
-echo "Renaming Flutter checkout directory to 'flutter sdk'"
-cd ..
-mv flutter flutter\ sdk
-cd flutter\ sdk
-echo "SDK directory is: $PWD"
-
-# disable analytics on the bots and download Flutter dependencies
-./bin/flutter config --no-analytics
-
-# run pub get in all the repo packages
-./bin/flutter update-packages
diff --git a/dev/devicelab/README.md b/dev/devicelab/README.md
index 4450ee0..2a0eba6 100644
--- a/dev/devicelab/README.md
+++ b/dev/devicelab/README.md
@@ -64,7 +64,7 @@
 ![Task status legend](images/legend.png)
 
 The example below shows that commit `e122d5d` caused a wide-spread breakage,
-which was fixed by `bdc6f10`. It also shows that Travis, AppVeyor and Chrome
+which was fixed by `bdc6f10`. It also shows that Cirrus and Chrome
 Infra (left-most tasks) decided to skip building these commits. Hovering over
 a cell will pop up a tooltip containing the name of the broken task. Clicking
 on the cell will open the log file in a new browser tab (only visible to core
@@ -75,9 +75,9 @@
 ## Why is a task stuck on "new task" status?
 
 The dashboard aggregates build results from multiple build environments,
-including Travis, AppVeyor, Chrome Infra, and devicelab. While devicelab
+including Cirrus, Chrome Infra, and devicelab. While devicelab
 tests every commit that goes into the `master` branch, other environments
-may skip some commits. For example, Travis and AppVeyor will only test the
+may skip some commits. For example, Cirrus will only test the
 _last_ commit of a PR that's merged into the `master` branch. Chrome Infra may
 skip commits when they come in too fast.
 
diff --git a/dev/devicelab/manifest.yaml b/dev/devicelab/manifest.yaml
index 5621cdb..78388f9 100644
--- a/dev/devicelab/manifest.yaml
+++ b/dev/devicelab/manifest.yaml
@@ -17,7 +17,7 @@
 # * stage: one of "devicelab", "devicelab_ios", "devicelab_win"
 #       tasks are grouped by stage so they appear next to each on the dashboard and have a distinct
 #       icon attached to them. Stages can be used to create dependencies, e.g. we may decide to not
-#       run device tests on red Travis.
+#       run device tests on red Cirrus builds.
 # * required_agent_capabilities: a list of strings
 #       list of capabilities a devicelab agent must have to be able to run this task.
 #
diff --git a/examples/flutter_gallery/android/fastlane/README.md b/examples/flutter_gallery/android/fastlane/README.md
index 2c91f15..6030165 100644
--- a/examples/flutter_gallery/android/fastlane/README.md
+++ b/examples/flutter_gallery/android/fastlane/README.md
@@ -1,10 +1,10 @@
-fastlane documentation
+FastLane documentation
 ================
 This folder contains hermetic scripts to deploy a built APK to the play store.
 
-This is done using the [fastlane](https://fastlane.tools) tool suite.
+This is done using the [FastLane](https://fastlane.tools) tool suite.
 
 Deployment can be done manually by Googlers by following
 go/flutter-gallery-publish (internal doc).
 
-Deployment is automatically done by Travis on branch cuts.
+Deployment is automatically done by Cirrus on tagged branch commits.
diff --git a/examples/flutter_gallery/ios/fastlane/Fastfile b/examples/flutter_gallery/ios/fastlane/Fastfile
index 957711c..5ab932f 100644
--- a/examples/flutter_gallery/ios/fastlane/Fastfile
+++ b/examples/flutter_gallery/ios/fastlane/Fastfile
@@ -22,7 +22,10 @@
 platform :ios do
   desc 'Push a new release to TestFlight'
   lane :build_and_deploy_testflight do |options|
-    # Doesn't do anything when not on Travis.
+    # Doesn't do anything when not on a CI bot. Even though it's called
+    # "setup_travis", this also runs on Cirrus, since the CI environment
+    # variable is set. When on a CI bot, it creates a temporary keychain and
+    # switches "match" to readonly mode to not create new profiles/certs on CI.
     setup_travis
 
     # Relative to this file.
diff --git a/examples/flutter_gallery/ios/fastlane/README.md b/examples/flutter_gallery/ios/fastlane/README.md
index b923a9b..410b0b4 100644
--- a/examples/flutter_gallery/ios/fastlane/README.md
+++ b/examples/flutter_gallery/ios/fastlane/README.md
@@ -1,11 +1,11 @@
-fastlane documentation
+FastLane documentation
 ================
 This folder contains hermetic scripts to re-build the app using a distribution
 profile and then deploy to TestFlight.
 
-This is done using the [fastlane](https://fastlane.tools) tool suite.
+This is done using the [FastLane](https://fastlane.tools) tool suite.
 
 Deployment can be done manually by Googlers by following
 go/flutter-gallery-publish (internal doc).
 
-Deployment is automatically done by Travis on branch cuts.
\ No newline at end of file
+Deployment is automatically done by Cirrus on tagged branch commits.
\ No newline at end of file
diff --git a/packages/flutter_test/lib/flutter_test.dart b/packages/flutter_test/lib/flutter_test.dart
index c46e733..8f8cc8e 100644
--- a/packages/flutter_test/lib/flutter_test.dart
+++ b/packages/flutter_test/lib/flutter_test.dart
@@ -53,7 +53,6 @@
 export 'src/goldens.dart';
 export 'src/matchers.dart';
 export 'src/nonconst.dart';
-export 'src/platform.dart';
 export 'src/stack_manipulation.dart';
 export 'src/test_async_utils.dart';
 export 'src/test_exception_reporter.dart';
diff --git a/packages/flutter_test/lib/src/platform.dart b/packages/flutter_test/lib/src/platform.dart
deleted file mode 100644
index e6b52ec..0000000
--- a/packages/flutter_test/lib/src/platform.dart
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-import 'dart:io';
-
-/// Whether the test is running in a Travis CI environment.
-bool get runningOnTravis => Platform.environment['TRAVIS'] == 'true';
diff --git a/packages/flutter_tools/lib/src/base/utils.dart b/packages/flutter_tools/lib/src/base/utils.dart
index 44e9c62..e8a609a 100644
--- a/packages/flutter_tools/lib/src/base/utils.dart
+++ b/packages/flutter_tools/lib/src/base/utils.dart
@@ -24,21 +24,24 @@
     return platform.environment['BOT'] != 'false'
        && (platform.environment['BOT'] == 'true'
 
-           // https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
+        // https://docs.travis-ci.com/user/environment-variables/#Default-Environment-Variables
         || platform.environment['TRAVIS'] == 'true'
         || platform.environment['CONTINUOUS_INTEGRATION'] == 'true'
         || platform.environment.containsKey('CI') // Travis and AppVeyor
 
-           // https://www.appveyor.com/docs/environment-variables/
+        // https://www.appveyor.com/docs/environment-variables/
         || platform.environment.containsKey('APPVEYOR')
 
-           // https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
+        // https://cirrus-ci.org/guide/writing-tasks/#environment-variables
+        || platform.environment.containsKey('CIRRUS_CI')
+
+        // https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html
         || (platform.environment.containsKey('AWS_REGION') && platform.environment.containsKey('CODEBUILD_INITIATOR'))
 
-           // https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables
+        // https://wiki.jenkins.io/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-belowJenkinsSetEnvironmentVariables
         || platform.environment.containsKey('JENKINS_URL')
 
-           // Properties on Flutter's Chrome Infra bots.
+        // Properties on Flutter's Chrome Infra bots.
         || platform.environment['CHROME_HEADLESS'] == '1'
         || platform.environment.containsKey('BUILDBOT_BUILDERNAME'));
   }
