gcp_credentials: ENCRYPTED[!f1177d1ddb5330ffaa9ea11c9c9e8e0c542185e895c36071f18cec923dd31c50ece6d18da89c2f6f1cd2d1a98d0c2eea!]

# Run on PRs and main branch post submit only. Don't run tests when tagging.
only_if: $CIRRUS_TAG == '' && ($CIRRUS_PR != '' || $CIRRUS_BRANCH == 'main')
env:
  CHANNEL: "master" # Default to master when not explicitly set by a task.

install_chrome_linux_template: &INSTALL_CHROME_LINUX
  env:
    CHROME_NO_SANDBOX: true
    CHROME_DOWNLOAD_DIR: /tmp/chromium
    CHROME_EXECUTABLE: $CHROME_DOWNLOAD_DIR/chrome-linux/chrome
    CHROMEDRIVER_EXECUTABLE: $CHROME_DOWNLOAD_DIR/chromedriver/chromedriver
    PATH: $PATH:$CHROME_DOWNLOAD_DIR/chrome-linux
  install_chromium_script:
    # Install a pinned version of Chromium and its corresponding ChromeDriver.
    # Setting CHROME_EXECUTABLE above causes this version to be used for tests.
    - ./script/install_chromium.sh "$CHROME_DIR"

tool_setup_template: &TOOL_SETUP_TEMPLATE
  tool_setup_script:
    - .ci/scripts/prepare_tool.sh

macos_template: &MACOS_TEMPLATE
  # Only one macOS task can run in parallel without credits, so use them for
  # PRs on macOS.
  use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
  macos_instance:
    image: ghcr.io/cirruslabs/macos-monterey-xcode:13.4.1

flutter_upgrade_template: &FLUTTER_UPGRADE_TEMPLATE
  upgrade_flutter_script:
    # Channels that are part of our normal test matrix use a pinned,
    # auto-rolled version to prevent out-of-band CI failures due to changes in
    # Flutter.
    - TARGET_TREEISH=$CHANNEL
    - if [[ "$CHANNEL" == "master" || "$CHANNEL" == "stable" ]]; then
    -   TARGET_TREEISH=$(< .ci/flutter_$CHANNEL.version)
    - fi
    # Ensure that the repository has all the branches.
    - cd $FLUTTER_HOME
    - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
    - git fetch origin
    # Switch to the requested channel.
    - git checkout $TARGET_TREEISH
    # When using a branch rather than a hash or version tag, reset to the
    # upstream branch rather than using pull, since the base image can sometimes
    # be in a state where it has diverged from upstream (!).
    - if [[ "$TARGET_TREEISH" == "$CHANNEL" ]] && [[ "$CHANNEL" != *"."* ]]; then
    -   git reset --hard @{u}
    - fi
    # Run doctor to allow auditing of what version of Flutter the run is using.
    - flutter doctor -v
  << : *TOOL_SETUP_TEMPLATE

task:
  gke_container:
    dockerfile: .ci/Dockerfile
    builder_image_name: docker-builder-linux # gce vm image
    builder_image_project: flutter-cirrus
    cluster_name: test-cluster
    zone: us-central1-a
    namespace: default
    cpu: 4
    memory: 8G
  << : *FLUTTER_UPGRADE_TEMPLATE
  matrix:
    ### Platform-agnostic tasks ###
    - name: format+analyze
      always:
        format_script: ./script/tool_runner.sh format --fail-on-change
        license_script: dart pub global run flutter_plugin_tools license-check
        analyze_script:
          - ./script/tool_runner.sh analyze --custom-analysis=script/configs/custom_analysis.yaml
        pathified_analyze_script:
          # Run analysis with path-based dependencies to ensure that publishing
          # the changes won't break analysis of other packages in the respository
          # that depend on it.
          - ./script/tool_runner.sh make-deps-path-based  --target-dependencies-with-non-breaking-updates 
          # This uses --run-on-dirty-packages rather than --packages-for-branch
          # since only the packages changed by 'make-deps-path-based' need to be
          # checked.
          - dart pub global run flutter_plugin_tools analyze --run-on-dirty-packages --custom-analysis=script/configs/custom_analysis.yaml
          # Restore the tree to a clean state
          - git checkout .
        pubspec_script: ./script/tool_runner.sh pubspec-check
        readme_script:
          - ./script/tool_runner.sh readme-check
          # Re-run with --require-excerpts, skipping packages that still need
          # to be converted. Once https://github.com/flutter/flutter/issues/102679
          # has been fixed, this can be removed and there can just be a single
          # run with --require-excerpts and no exclusions.
          - ./script/tool_runner.sh readme-check --require-excerpts --exclude=script/configs/temp_exclude_excerpt.yaml
    - name: readme_excerpts
      env:
        CIRRUS_CLONE_SUBMODULES: true
      script: ./script/tool_runner.sh update-excerpts --fail-on-change
    # Does a sanity check that packages at least pass analysis on the N-1 and N-2
    # versions of Flutter stable if the package claims to support that version.
    # This is to minimize accidentally making changes that break old versions
    # (which we don't commit to supporting, but don't want to actively break)
    # without updating the constraints.
    # Note: The versions below should be manually updated after a new stable
    # version comes out.
    - name: legacy-version-analyze
      depends_on: format+analyze
      matrix:
        env:
          CHANNEL: "2.10.5"
          DART_VERSION: "2.16.2"
        env:
          CHANNEL: "2.8.1"
          DART_VERSION: "2.15.1"
      package_prep_script:
        # Allow analyzing packages that use a dev dependency with a higher
        # minimum Flutter/Dart version than the package itself.
        - ./script/tool_runner.sh remove-dev-dependencies
      analyze_script:
        - ./script/tool_runner.sh analyze --lib-only --skip-if-not-supporting-flutter-version="$CHANNEL" --skip-if-not-supporting-dart-version="$DART_VERSION" --custom-analysis=script/configs/custom_analysis.yaml
    # Does a sanity check that packages pass analysis with the lowest possible
    # versions of all dependencies. This is to catch cases where we add use of
    # new APIs but forget to update minimum versions of dependencies to where
    # those APIs are introduced.
    - name: downgraded_analyze
      depends_on: format+analyze
      analyze_script:
        - ./script/tool_runner.sh analyze --downgrade --custom-analysis=script/configs/custom_analysis.yaml
    - name: publishable
      env:
        # TODO(stuartmorgan): Remove once the fix for https://github.com/dart-lang/pub/issues/3152
        # rolls into Flutter master.
        CHANNEL: stable
        CHANGE_DESC: "/tmp/change-description.txt"
      version_script:
        # For pre-submit, pass the PR description to the script to allow for
        # version check overrides.
        # For post-submit, ignore missing version/CHANGELOG detection; the PR
        # description isn't reliably part of the commit message, so using the
        # same flags as for presubmit would likely result in false-positive
        # post-submit failures.
        - if [[ $CIRRUS_PR == "" ]]; then
        -   ./script/tool_runner.sh version-check
        - else
        -   echo "$CIRRUS_CHANGE_MESSAGE" > "$CHANGE_DESC"
        -   ./script/tool_runner.sh version-check --check-for-missing-changes --change-description-file="$CHANGE_DESC" --pr-labels="$CIRRUS_PR_LABELS"
        - fi
      publishable_script: ./script/tool_runner.sh publish-check --allow-pre-release
      depends_on:
        - format+analyze
    - name: dart_unit_tests
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      unit_test_script:
        - ./script/tool_runner.sh test --exclude=script/configs/dart_unit_tests_exceptions.yaml
      pathified_unit_test_script:
        # Run tests with path-based dependencies to ensure that publishing
        # the changes won't break tests of other packages in the respository
        # that depend on it.
        - ./script/tool_runner.sh make-deps-path-based --target-dependencies-with-non-breaking-updates
        - dart pub global run flutter_plugin_tools test --run-on-dirty-packages --exclude=script/configs/dart_unit_tests_exceptions.yaml
      depends_on:
        - format+analyze
    - name: linux-custom_package_tests
      env:
        PATH: $PATH:/usr/local/bin
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      << : *INSTALL_CHROME_LINUX
      local_tests_script:
        # pigeon tests currently don't support Linux:
        #   https://github.com/flutter/flutter/issues/100386
        # flutter_image
        #   https://github.com/flutter/flutter/issues/100387
        - if [[ "$CHANNEL" == "master" ]]; then
        -   ./script/tool_runner.sh custom-test --exclude=pigeon
        - else
        -   ./script/tool_runner.sh custom-test --exclude=pigeon,flutter_image
        - fi
    ### Android tasks ###
    - name: android-platform_tests
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      build_script:
        # extension_google_sign_in_as_googleapis_auth is currently not building, see
        # https://github.com/flutter/flutter/issues/89301
        - ./script/tool_runner.sh build-examples --apk --exclude=extension_google_sign_in_as_googleapis_auth
      native_unit_test_scipt:
        - ./script/tool_runner.sh native-test --android --no-integration
      depends_on:
        - format+analyze
    ### Web tasks ###
    - name: web-platform_tests
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      << : *INSTALL_CHROME_LINUX
      chromedriver_background_script:
        - $CHROMEDRIVER_EXECUTABLE --port=4444
      build_script:
        - ./script/tool_runner.sh build-examples --web
      drive_script:
        - ./script/tool_runner.sh drive-examples --web
    - name: web_benchmarks_test
      env:
        matrix:
          CHROMIUM_BUILD: "768968" # Chromium 84.0.4147.0
          CHROMIUM_BUILD: "950363" # Chromium 98.0.4758.0
      << : *INSTALL_CHROME_LINUX
      script:
        - cd packages/web_benchmarks/testing/test_app
        - flutter packages get
        - cd ../..
        - flutter packages get
        - dart testing/web_benchmarks_test.dart
    ### Linux desktop tasks ###
    - name: linux-platform_tests
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      build_script:
        - flutter config --enable-linux-desktop
        - ./script/tool_runner.sh build-examples --linux
      native_test_script:
        - ./script/tool_runner.sh native-test --linux --no-integration

task:
  << : *FLUTTER_UPGRADE_TEMPLATE
  << : *MACOS_TEMPLATE
  matrix:
   ### iOS tasks ###
    - name: ios-platform_tests
      env:
        PATH: $PATH:/usr/local/bin
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      create_simulator_script:
        - xcrun simctl list
        - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-13 com.apple.CoreSimulator.SimRuntime.iOS-15-5 | xargs xcrun simctl boot
      build_script:
        - ./script/tool_runner.sh build-examples --ios
      native_test_script:
        - ./script/tool_runner.sh native-test --ios --ios-destination "platform=iOS Simulator,name=iPhone 13,OS=latest"
    - name: ios-custom_package_tests
      # Run on macOS x64 image with Java runtime installed.
      env:
        PATH: $PATH:/usr/local/bin
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      local_tests_script:
        # flutter_image
        #   https://github.com/flutter/flutter/issues/100387
        # cross_file
        #   Custom tests need Chrome. (They run in linux-custom_package_tests)
        - if [[ "$CHANNEL" == "master" ]]; then
        -   ./script/tool_runner.sh custom-test --exclude=cross_file
        - else
        -   ./script/tool_runner.sh custom-test --exclude=cross_file,flutter_image
        - fi
    ### macOS desktop tasks ###
    - name: macos-platform_tests
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
        PATH: $PATH:/usr/local/bin
      build_script:
        - flutter config --enable-macos-desktop
        - ./script/tool_runner.sh build-examples --macos
      native_test_script:
        - ./script/tool_runner.sh native-test --macos
