# CIRRUS CONFIGURATION FILE
# https://cirrus-ci.org/guide/writing-tasks/

# YAML anchors used to share fields between tasks.
# See https://confluence.atlassian.com/bitbucket/yaml-anchors-960154027.html

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

macos_shard_template: &MACOS_SHARD_TEMPLATE
  only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $CIRRUS_PR == ''" # https://github.com/flutter/flutter/issues/41941
  script:
    - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
    - dart --enable-asserts ./dev/bots/test.dart

firebase_shard_template: &FIREBASE_SHARD_TEMPLATE
  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:
    - dart --enable-asserts ./dev/bots/test.dart

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:
    # https://cirrus-ci.org/guide/docker-builder-vm/#dockerfile-as-a-ci-environment
    dockerfile: "dev/ci/docker_linux/Dockerfile"
    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
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      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
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      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: tool_tests-integration-linux
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/**') && $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
        CHROME_NO_SANDBOX: true
        SHOULD_UPDATE_PACKAGES: "FALSE"
      script:
        - (cd packages/flutter_tools; pub get)
        - (cd dev/bots; pub get)
        - (cd dev/tools; pub get)
        - dart --enable-asserts ./dev/bots/test.dart

    - name: tool_coverage-linux # linux-only
      skip: true # Skip while moving between Cirrus and LUCI
      only_if: "$CIRRUS_BRANCH == 'master'"
      environment:
        # As of February 2020, the tool_coverage-linux shard needed at least 24G of RAM to run without
        # getting OOM-killed, and even 8 CPUs took 25 minutes.
        CPU: 8
        MEMORY: 24G
        CODECOV_TOKEN: ENCRYPTED[7c76a7f8c9264f3b7f3fd63fcf186f93c62c4dfe43ec288861c2f506d456681032b89efe7b7a139c82156350ca2c752c]
        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
        - bash <(curl -s https://codecov.io/bash) -c -f packages/flutter_tools/coverage/lcov.info -F flutter_tool

    - name: web_integration_tests
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_tools/**', 'packages/flutter_web_plugins/**', 'bin/**') && $CIRRUS_PR != ''"
      environment:
        # As of October 2019, the Web shards needed more than 6G of RAM.
        CPU: 2
        MEMORY: 8G
        CHROME_NO_SANDBOX: true
        GOLD_SERVICE_ACCOUNT: ENCRYPTED[3afeea5ac7201151c3d0dc9648862f0462b5e4f55dc600ca8b692319622f7c3eda3d577b1b16cc2ef0311b7314c1c095]
      script:
        - dart --enable-asserts ./dev/bots/test.dart

    - name: docs-linux # linux-only
      # TODO(fujino): Make this pre-submit only once #64212 is fixed
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter/**', 'packages/flutter_test/**', 'packages/flutter_drive/**', 'packages/flutter_localizations/**', 'bin/**') || $CIRRUS_PR == ''"
      environment:
        # TODO(tvolkert): optimize CPU and MEMORY settings once #60646 is resolved.
        CPU: 4
        MEMORY: 8G
        # For uploading master docs to Firebase master branch staging site
        FIREBASE_MASTER_TOKEN: ENCRYPTED[eb768d18798fdc5abfe09b224e1724c4d82831d715ccf90df2c79d618c317216cbd99493278361f6fe7948b409b603f0]
        # For uploading stable docs to Firebase public live site
        FIREBASE_PUBLIC_TOKEN: ENCRYPTED[37e8b82f167864cae9a3f4d2cf3f37dea331d9375c295327c45de524f6c588fa6f6d63e5784f10f6d43ce29689f36c92]
      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.
      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

    # firebase_test_lab_tests are linux-only
    - name: firebase_test_lab_tests-0-linux
      <<: *FIREBASE_SHARD_TEMPLATE

    - name: firebase_test_lab_tests-1-linux
      <<: *FIREBASE_SHARD_TEMPLATE

    - name: firebase_test_lab_tests-2_last-linux
      <<: *FIREBASE_SHARD_TEMPLATE

    - 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 &
        - sleep 20
        - chromedriver/chromedriver --port=4444 &
        - sleep 5
        - cd ../../../examples/hello_world/
        - flutter drive --target=test_driver/smoke_web_engine.dart -d web-server --profile --browser-name=chrome

    - name: deploy_gallery-linux # linux- and macos- only
      # Do not add more tasks here. Nothing is currently deployed from master branch, so it is safe to run
      # even if a test has failed. The behavior of failing dependencies is non-ideal for infra health.
      # See also: https://github.com/flutter/flutter/pull/49454
      depends_on:
        - analyze-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:30-windowsservercore-2019
    os_version: 2019
    cpu: $CPU
    memory: $MEMORY
  environment:
    CPU: 1 # 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"
    SHOULD_UPDATE_PACKAGES: "TRUE"
  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
    reupload_on_changes: false
  flutter_pkg_cache:
    folder: bin\cache\pkg
    fingerprint_script: echo %OS% & type bin\internal\*.version
    reupload_on_changes: false
  artifacts_cache:
    folder: bin\cache\artifacts
    fingerprint_script: echo %OS% & type bin\internal\*.version
    reupload_on_changes: false
  setup_script:
    - git clean -xffd --exclude=bin/cache/ # git wants forward slash path separators, even on Windows.
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD, so that "git merge-base" works.
    - flutter config --no-analytics
    - flutter doctor -v
    - CMD /C IF "%SHOULD_UPDATE_PACKAGES%" EQU "TRUE" flutter update-packages
    - git fetch origin master
  matrix:
    - name: hostonly_devicelab_tests-0-windows
      << : *WINDOWS_SHARD_TEMPLATE
      environment:
        # As of December 2019, the hostonly_devicelab_tests-0-windows shard needs at least 6G RAM to
        # succeed. The shard got faster with more CPUs up to 6 CPUs and more RAM up to 8 GB
        # (running in about 30 minutes).
        CPU: 6
        MEMORY: 8G

    - name: hostonly_devicelab_tests-1-windows
      << : *WINDOWS_SHARD_TEMPLATE
      environment:
        # As of December 2019, the hostonly_devicelab_tests-1-windows shard requires 4 GB RAM to
        # succeed. The optimal configuration was 4 CPUs and 6 GB RAM, running in ~26 minutes.
        # Less CPU or RAM ran slower, and more CPU or RAM yielded no extra gain.
        CPU: 4
        MEMORY: 6G

    - name: hostonly_devicelab_tests-2-windows
      << : *WINDOWS_SHARD_TEMPLATE
      environment:
        # As of December 2019, the hostonly_devicelab_tests-2-windows shard required 2 GB RAM to
        # succeed. The optimal configuration was 4 CPUs and 8 GB RAM, running in ~33 minutes.
        # Less CPU or RAM ran slower, and more CPU or RAM yielded no extra gain.
        CPU: 4
        MEMORY: 8G

    - name: hostonly_devicelab_tests-3_last-windows
      << : *WINDOWS_SHARD_TEMPLATE
      environment:
        # As of December 2019, the hostonly_devicelab_tests-3_last-windows shard required 6 GB RAM
        # to succeed. The optimal configuration was 4 CPUs and 6 GB RAM, running in ~43 minutes.
        # Less CPU or RAM ran slower, and more CPU or RAM yielded no extra gain.
        CPU: 4
        MEMORY: 6G

# 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: catalina-xcode-12.0-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
    SHOULD_UPDATE_PACKAGES: 'TRUE'
  setup_script:
    - date
    - which flutter
    - bundle --version
    - bundle config set system 'true'
    - sudo bundle install --gemfile=dev/ci/mac/Gemfile
    - 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
    - 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/**') || $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/**') || $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_goldens_client/**', 'packages/flutter_test/**', 'packages/flutter_tools/lib/src/test/**', 'bin/**') || $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/**') || $CIRRUS_PR == ''"
      environment:
        SHOULD_UPDATE_PACKAGES: 'FALSE'
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - (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-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'packages/flutter_tools/**', 'bin/**') || $CIRRUS_PR == ''"
      environment:
        SHOULD_UPDATE_PACKAGES: 'FALSE'
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - (cd packages/flutter_tools; pub get)
        - (cd dev/bots; pub get)
        - dart --enable-asserts ./dev/bots/test.dart

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

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

    - name: build_tests-0-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $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: build_tests-1_last-macos
      only_if: "changesInclude('.cirrus.yml', 'dev/**', 'bin/**') || $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-0-macos
      << : *MACOS_SHARD_TEMPLATE

    - name: hostonly_devicelab_tests-1-macos
      << : *MACOS_SHARD_TEMPLATE

    - name: hostonly_devicelab_tests-2-macos
      << : *MACOS_SHARD_TEMPLATE

    - name: hostonly_devicelab_tests-3_last-macos
      << : *MACOS_SHARD_TEMPLATE

    - 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
      # Do not add more tasks here. Nothing is currently deployed from master branch, so it is safe to run
      # even if a test has failed. The behavior of failing dependencies is non-ideal for infra health.
      # See also: https://github.com/flutter/flutter/pull/49454
      depends_on:
        - analyze-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

    - name: verify_binaries_codesigned-macos # macos-only
      # TODO(fujino): remove this `only_if` after https://github.com/flutter/flutter/issues/44372
      # Only run pre/post submit for release branches
      only_if: "$CIRRUS_BASE_BRANCH == 'dev' || $CIRRUS_BRANCH == 'dev' || $CIRRUS_BASE_BRANCH == 'beta' || $CIRRUS_BRANCH == 'beta' || $CIRRUS_BASE_BRANCH == 'stable' || $CIRRUS_BRANCH == 'stable'"
      depends_on:
        - analyze-linux
      script:
        - ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
        - dart --enable-asserts ./dev/bots/codesign.dart
