# CIRRUS CONFIGURATION FILE

use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'

environment:
  # For details about environment variables used in Cirrus, including how encrypted variables work,
  # see https://cirrus-ci.org/guide/writing-tasks/#environment-variables
  GCLOUD_SERVICE_ACCOUNT_KEY: ENCRYPTED[f12abe60f5045d619ef4c79b83dd1e0722a0b0b13dbea95fbe334e2db7fffbcd841a5a92da8824848b539a19afe0c9fb]
  # 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"
  # 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
  # TODO(amirha): remove once we've migrated to newer Gradle
  CIRRUS_CHANGE_MESSAGE: ""
  CIRRUS_COMMIT_MESSAGE: ""

# LINUX SHARDS
task:
  container:
    dockerfile: "dev/ci/docker_linux/Dockerfile"
    cpu: $CPU
    memory: $MEMORY
  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/ci/docker_linux"
    PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
    ANDROID_SDK_ROOT: "/opt/android_sdk"
  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/*.version
  artifacts_cache:
    folder: bin/cache/artifacts
    fingerprint_script: echo $OS; cat bin/internal/*.version
  setup_script:
    - date
    - git clean -xffd
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
    - flutter config --no-analytics
    - flutter doctor -v
    - flutter update-packages
    - ./dev/bots/accept_android_sdk_licenses.sh
    - date
  on_failure:
    failure_script:
      - date
      - which flutter
  matrix:
    - name: analyze-linux # linux-only
      # environment:
        # Empirically, the analyze-linux shard runs surprisingly fast (under 15 minutes) with just 1
        # CPU and 4G RAM as of October 2019. It fails with less than 4G though.
      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/internal/**') || $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
        GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - ./dev/bots/download_goldctl.sh
        - 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/internal/**') || $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
        GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - ./dev/bots/download_goldctl.sh
        - 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/internal/**') || $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/internal/**') || $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
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_tests-commands-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $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
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_tests-integration-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the tool_tests-integration-linux shard got faster with more CPUs up to
        # 6 CPUs, and needed at least 8G of RAM to not run out of memory.
        CPU: 6
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_coverage-linux # linux-only
      only_if: "$CIRRUS_PR == ''"
      environment:
        # As of October 2019, the tool_coverage-linux shard needed at least 12G of RAM to run without
        # getting OOM-killed, and even 8 CPUs took 25 minutes.
        CPU: 8
        MEMORY: 12G
        CODECOV_TOKEN: ENCRYPTED[7c76a7f8c9264f3b7f3fd63fcf186f93c62c4dfe43ec288861c2f506d456681032b89efe7b7a139c82156350ca2c752c]
      script:
        - dart --enable-asserts ./dev/bots/test.dart
        - bash <(curl -s https://codecov.io/bash) -c -f packages/flutter_tools/coverage/lcov.info -F flutter_tool

    - name: web_tests-0-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-1-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-2-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-3-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-4-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-5-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-6-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: web_tests-7_last-linux # last Web shard must end with _last
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'packages/flutter_web_plugins/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: build_tests-linux
      environment:
        # With 1 CPU and 4G of RAM, as of October 2019, build_tests-linux would get OOM-killed.
        # Increasing the RAM to 12G allowed it to finish in about 30 minutes, any extra CPU (tried 2
        # and 4) reduced that to just over 20 minutes. 6G was enough not to get OOM-killed.
        CPU: 2
        MEMORY: 6G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-0-linux
      environment:
        # Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-1-linux
      environment:
        # Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-2-linux
      environment:
        # Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-3_last-linux
      environment:
        # Some of the host-only devicelab tests are pretty involved and need a lot of RAM.
        CPU: 2
        MEMORY: 8G
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    # TODO(ianh): name: add_to_app_tests-linux

    - name: docs-linux # linux-only
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_drive/**', 'packages/flutter_localizations/**', 'packages/flutter_goldens/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        # Empirically, as of October 2019, the docs-linux shard took about 30 minutes when run with
        # 1 CPU and 4G of RAM. 2 CPUs reduced that to 20 minutes, more CPUs did not improve matters.
        CPU: 2
        # For uploading master docs to Firebase master branch staging site
        FIREBASE_MASTER_TOKEN: ENCRYPTED[eb768d18798fdc5abfe09b224e1724c4d82831d715ccf90df2c79d618c317216cbd99493278361f6fe7948b409b603f0]
        # For uploading beta docs to Firebase public live site
        FIREBASE_PUBLIC_TOKEN: ENCRYPTED[37e8b82f167864cae9a3f4d2cf3f37dea331d9375c295327c45de524f6c588fa6f6d63e5784f10f6d43ce29689f36c92]
      script:
        - ./dev/bots/docs.sh

    - name: customer_testing-linux
      # 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.
      script:
        - rm -rf bin/cache/pkg/tests
        - git clone https://github.com/flutter/tests.git bin/cache/pkg/tests
        - dart --enable-asserts dev/customer_testing/run_tests.dart --skip-on-fetch-failure --skip-template bin/cache/pkg/tests/registry/*.test

    - name: firebase_test_lab_tests-linux # linux-only
      environment:
        # Empirically, this shard runs in 20-25 minutes with just one CPU and 4G of RAM, as of
        # October 2019. It does not seem to be sensitive to the number of CPUs or amount of RAM;
        # doubling CPUs had no effect (mere seconds under 20 minutes), increasing RAM to 24G left it
        # on the high end of the 20-25 minute range. (This makes sense, as it's just driving the
        # Firebase test lab remotely.) Less than 4G of RAM made it go OOM.
        CLOUDSDK_CORE_DISABLE_PROMPTS: 1
        GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[1c140257edc48f5578fa5a0e5038b84c8e53270c405efa5a8e35ea303a4e0d135853989f448f72136206de854d17fbec]
      script:
        - ./dev/bots/firebase_testlab.sh

    - name: deploy_gallery-linux # linux- and macos- only
      depends_on:
        - analyze-linux
        - framework_tests-widgets-linux
        - framework_tests-libraries-linux
        - framework_tests-misc-linux
        - tool_tests-general-linux
        - tool_tests-commands-linux
        - tool_tests-integration-linux
        - build_tests-linux
        - hostonly_devicelab_tests-0-linux
        - hostonly_devicelab_tests-1-linux
        - hostonly_devicelab_tests-2-linux
        - hostonly_devicelab_tests-3_last-linux
        - firebase_test_lab_tests-linux
      environment:
        # As of October 2019, 1 CPU and 4G of RAM let deploy_gallery-linux finish in about 15
        # minutes, once it got started.
        GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE: ENCRYPTED[d9ac1462c3c556fc2f8165c9d5566a16497d8ebc38a50357f7f3abf136b7f83e1d1d76dde36fee356cb0f9ebf7a89346]
        ANDROID_GALLERY_UPLOAD_KEY: ENCRYPTED[0f2aca35f05b26add5d9edea2a7449341269a2b7e22d5c667f876996e2e8bc44ff1369431ebf73b7c5581fd95d0e5902]
      script:
        - ./dev/bots/deploy_gallery.sh

# WINDOWS SHARDS
task:
  windows_container:
    image: cirrusci/android-sdk:28-windowsservercore-2019
    os_version: 2019
    cpu: $CPU
    memory: $MEMORY
  environment:
    # It's not clear that changing the cpu/memory fields here has any impact, so we use
    # small numbers...
    CPU: 2 # 1-8 without compute credits, 1-30 with
    MEMORY: 2G # 256M-24G without compute credits, 256M-90G with
    CIRRUS_WORKING_DIR: "C:\\Windows\\Temp\\$FLUTTER_SDK_PATH_WITH_SPACE"
    PATH: "$CIRRUS_WORKING_DIR/bin;$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin;$PATH"
  pub_cache:
    folder: $APPDATA\Pub\Cache
    fingerprint_script:
      - ps: $Environment:OS; Get-ChildItem -Path "$Environment: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\*.version
  artifacts_cache:
    folder: bin\cache\artifacts
    fingerprint_script: echo %OS% & type bin\internal\*.version
  setup_script:
    - git clean -xffd
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
    - flutter config --no-analytics
    - flutter doctor -v
    - flutter update-packages
    - git fetch origin master
  matrix:
    - name: framework_tests-widgets-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        GOLDCTL: "C:\\Windows\\Temp\\depot_tools\\goldctl.exe"
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - powershell dev\bots\download_goldctl.ps1
        - dart --enable-asserts dev\bots\test.dart

    - name: framework_tests-libraries-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        GOLDCTL: "C:\\Windows\\Temp\\depot_tools\\goldctl.exe"
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - powershell dev\bots\download_goldctl.ps1
        - dart --enable-asserts dev\bots\test.dart

    - name: framework_tests-misc-windows
      # 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/internal/**') || $CIRRUS_PR == ''"
      script:
        - dart --enable-asserts dev\bots\test.dart

    - name: tool_tests-general-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_tests-commands-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_tests-integration-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    # TODO(ianh): Enable Web tests on Windows

    - name: build_tests-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
      script:
        - dart --enable-asserts dev\bots\test.dart

    - name: hostonly_devicelab_tests-0-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-1-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-2-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-3_last-windows
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    # TODO(ianh): name: add_to_app_tests-windows

    - name: customer_testing-windows
      script:
        - CMD /S /C "IF EXIST "bin\cache\pkg\tests\" RMDIR /S /Q bin\cache\pkg\tests"
        - git clone https://github.com/flutter/tests.git bin\cache\pkg\tests
        - dart --enable-asserts dev\customer_testing\run_tests.dart --skip-on-fetch-failure --skip-template bin/cache/pkg/tests/registry/*.test

# MACOS SHARDS
# Mac doesn't use caches because they apparently take longer to populate and save
# than just fetching the data in the first place.
task:
  osx_instance:
    image: mojave-flutter # see https://cirrus-ci.org/guide/macOS/ for list of images (we should update regularly)
    # cpu is always 2
    # memory is always 8G
  environment:
    CIRRUS_WORKING_DIR: "/tmp/$FLUTTER_SDK_PATH_WITH_SPACE"
    FLUTTER_FRAMEWORK_DIR: "$CIRRUS_WORKING_DIR/bin/cache/artifacts/engine/ios/"
    PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
    COCOAPODS_DISABLE_STATS: true
    CPU: 2
    MEMORY: 8G
  setup_script:
    - date
    - which flutter
    - bundle --version
    - sudo bundle install --system --gemfile=dev/ci/mac/Gemfile
    - git clean -xffd
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
    - flutter config --no-analytics
    - flutter doctor -v
    - flutter update-packages
    - date
    - which flutter
  on_failure:
    failure_script:
      - date
      - which flutter
  matrix:
    - name: framework_tests-widgets-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - ./dev/bots/download_goldctl.sh
        - dart --enable-asserts dev/bots/test.dart

    - name: framework_tests-libraries-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      environment:
        GOLDCTL: "$CIRRUS_WORKING_DIR/depot_tools/goldctl"
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - ./dev/bots/download_goldctl.sh
        - dart --enable-asserts dev/bots/test.dart

    - name: framework_tests-misc-macos
      # 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/internal/**') || $CIRRUS_PR == ''"
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts dev/bots/test.dart

    - name: tool_tests-general-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_tests-commands-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_tests-integration-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/internal/**') || $CIRRUS_PR == ''"
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    # TODO(ianh): Enable Web tests on macOS.

    - name: build_tests-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-0-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-1-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-2-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    - name: hostonly_devicelab_tests-3_last-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/test.dart

    - name: add_to_app_tests-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/internal/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41940
      skip: true # https://github.com/flutter/flutter/pull/42444
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts dev/bots/test.dart

    - name: customer_testing-macos
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - rm -rf bin/cache/pkg/tests
        - git clone https://github.com/flutter/tests.git bin/cache/pkg/tests
        - dart --enable-asserts dev/customer_testing/run_tests.dart --skip-on-fetch-failure --skip-template bin/cache/pkg/tests/registry/*.test

    - name: deploy_gallery-macos # linux- and macos- only
      depends_on:
        - analyze-linux
        - framework_tests-widgets-macos
        - framework_tests-libraries-macos
        - framework_tests-misc-macos
        - tool_tests-general-macos
        - tool_tests-commands-macos
        - tool_tests-integration-macos
        - build_tests-macos
        - hostonly_devicelab_tests-0-macos
        - hostonly_devicelab_tests-1-macos
        - hostonly_devicelab_tests-2-macos
        - hostonly_devicelab_tests-3_last-macos
        - firebase_test_lab_tests-linux
      environment:
        # Apple Fastlane password.
        FASTLANE_PASSWORD: ENCRYPTED[4b1f0b8d52874e9de965acd46c79743f3b81f3a513614179b9be7cf53dc8258753e257bdadb11a298ee455259df21865]
        # Private repo for publishing certificates.
        PUBLISHING_MATCH_CERTIFICATE_REPO: ENCRYPTED[3c0e78877d933fc80107aa6f3790fd1cf927250b852d6cb53202be696b4903ed8ca839b809626aaf18050bf7e436fab7]
        PUBLISHING_MATCH_REPO_TOKEN: ENCRYPTED[3d1230b744c6ed6c788a91bec741b769401dbcd426b18f9af8080bfeefdfc21913ca4047980c5b5b7ce823f12e7b6b19]
        # Apple Certificates Match Passphrase
        MATCH_PASSWORD: ENCRYPTED[db07f252234397090e3ec59152d9ec1831f5ecd0ef97d247b1dca757bbb9ef9b7c832a39bce2caf1949ccdf097e59a73]
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - ./dev/bots/deploy_gallery.sh

docker_builder:
  # Only build a new docker image when we tag a release (for dev, beta, or
  # release.) Note: tagging a commit and pushing to a release branch are
  # different cirrus triggers. See a tag CI run at e.g.
  # https://cirrus-ci.com/github/flutter/flutter/v1.2.3
  only_if: $CIRRUS_TAG != ''
  environment:
    GCLOUD_CREDENTIALS: ENCRYPTED[f7c098d4dd7f5ee1bfee0bb7e944cce72efbe10e97ad6440ae72de4de6a1c24d23f421a2619c668e94377fb64b0bb3e6]
  depends_on:
    - docs-linux
    - analyze-linux
    - framework_tests-widgets-linux
    - framework_tests-libraries-linux
    - framework_tests-misc-linux
    - tool_tests-general-linux
    - tool_tests-commands-linux
    - tool_tests-integration-linux
    - build_tests-linux
    - hostonly_devicelab_tests-0-linux
    - hostonly_devicelab_tests-1-linux
    - hostonly_devicelab_tests-2-linux
    - hostonly_devicelab_tests-3_last-linux
    - firebase_test_lab_tests-linux
  build_script:
    - cd "$CIRRUS_WORKING_DIR/dev/ci/docker_linux"
    - ./docker_build.sh
    - ./docker_login.sh
    - ./docker_push.sh
