# Don't run on release tags since it creates O(n^2) tasks where n is the
# number of plugins
only_if: $CIRRUS_TAG == ''
use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
env:
  INTEGRATION_TEST_PATH: "./packages/integration_test"
  CHANNEL: "master" # Default to master when not explicitly set by a task.
  PLUGIN_TOOLS: "dart run ./script/tool/lib/src/main.dart"

tool_setup_template: &TOOL_SETUP_TEMPLATE
  tool_setup_script:
    - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
    - cd script/tool
    - pub get

flutter_upgrade_template: &FLUTTER_UPGRADE_TEMPLATE
  upgrade_flutter_script:
    - flutter channel $CHANNEL
    - flutter upgrade
  << : *TOOL_SETUP_TEMPLATE

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'
  osx_instance:
    image: big-sur-xcode-12.3
  cocoapod_install_script: sudo gem install cocoapods

# Light-workload Linux tasks.
# These use default machines, with fewer CPUs, to reduce pressure on the
# concurrency limits.
task:
  << : *FLUTTER_UPGRADE_TEMPLATE
  container:
    dockerfile: .ci/Dockerfile
  matrix:
    ### Platform-agnostic tasks ###
    - name: plugin_tools_tests
      script:
        - cd script/tool
        - CIRRUS_BUILD_ID=null pub run test
    - name: publishable
      script:
        - if [[ "$CIRRUS_BRANCH" == "master" ]]; then
        -   $PLUGIN_TOOLS version-check
        - else
        -   $PLUGIN_TOOLS version-check --run-on-changed-packages
        - fi
        - ./script/check_publish.sh
    - name: format
      format_script: ./script/incremental_build.sh format --fail-on-change
      license_script:
        - cd script/tool
        - pub get
        - cd ../..
        - dart script/tool/lib/src/main.dart license-check
    - name: test
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      test_script:
        - ./script/incremental_build.sh test
    - name: analyze_master
      env:
        matrix:
          CHANNEL: "master"
      script:
        - ./script/incremental_build.sh analyze
    ## TODO(cyanglaz):
    ## Combing stable and master analyze jobs when integration test null safety is ready on flutter stable.
    - name: analyze_stable
      env:
        matrix:
          CHANNEL: "stable"
      script:
        - find . -depth -type d -wholename '*_web/example' -exec rm -rf {} \;
        - ./script/incremental_build.sh analyze
    ### Android tasks ###
    - name: build_all_plugins_apk
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      script:
        - ./script/build_all_plugins_app.sh apk
    ### Web tasks ###
    - name: build_all_plugins_web
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      script:
        - ./script/build_all_plugins_app.sh web
    - name: build-web-examples
      env:
        matrix:
          CHANNEL: "master"
      build_script:
        - ./script/incremental_build.sh build-examples --web
        # TODO: Add driving examples (and move to heavy-workload group).
    ### Linux desktop tasks ###
    - name: build_all_plugins_linux
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      script:
        - flutter config --enable-linux-desktop
        - ./script/build_all_plugins_app.sh linux
    - name: build-linux+drive-examples
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      build_script:
        - flutter config --enable-linux-desktop
        - ./script/incremental_build.sh build-examples --linux
        - xvfb-run ./script/incremental_build.sh drive-examples --linux

# Legacy Dockerfile configuration for web integration tests.
# https://github.com/flutter/web_installers doesn't yet support the current
# stable version of Chrome, so newly-generated Docker images don't work.
# TODO: Merge this task into the "Web tasks" section of the "Light-workload
# tasks" block above once web_installers has been updated to support Chrome 89
# (which is what the current image generated from .ci/Dockerfile has).
task:
  << : *FLUTTER_UPGRADE_TEMPLATE
  container:
    dockerfile: .ci/Dockerfile-LegacyChrome
  matrix:
    - name: integration_web_smoke_test
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      # Tests integration example test in web.
      only_if: "changesInclude('.cirrus.yml', 'packages/integration_test/**') || $CIRRUS_PR == ''"
      install_script:
        - 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 &
      test_script:
        - cd $INTEGRATION_TEST_PATH/example/
        - flutter drive -v --driver=test_driver/integration_test.dart --target=integration_test/example_test.dart -d web-server --release --browser-name=chrome

# Heavy-workload Linux tasks.
# These use machines with more CPUs and memory, so will reduce parallelization
# for non-credit runs.
task:
  << : *FLUTTER_UPGRADE_TEMPLATE
  container:
    dockerfile: .ci/Dockerfile
    cpu: 4
    memory: 12G
  matrix:
    ### Android tasks ###
    - name: build-apks+java-test+firebase-test-lab
      env:
        matrix:
          PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4"
          PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4"
          PLUGIN_SHARDING: "--shardIndex 2 --shardCount 4"
          PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4"
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
        MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550]
        GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[07586610af1fdfc894e5969f70ef2458341b9b7e9c3b7c4225a663b4a48732b7208a4d91c3b7d45305a6b55fa2a37fc4]
      script:
        # 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
        # This is a temporary workaround until we figure how to properly configure
        # a UTF8 locale on Cirrus (or until the Gradle bug is fixed).
        # TODO(amirh): Set the locale to UTF8.
        - echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt
        - echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt
        - export CIRRUS_CHANGE_MESSAGE=""
        - export CIRRUS_COMMIT_MESSAGE=""
        - ./script/incremental_build.sh build-examples --apk
        - ./script/incremental_build.sh java-test  # must come after apk build
        - if [[ -n "$GCLOUD_FIREBASE_TESTLAB_KEY" ]]; then
        -   echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json
        -   ./script/incremental_build.sh firebase-test-lab --device model=flame,version=29 --device model=starqlteue,version=26
        - else
        -   echo "This user does not have permission to run Firebase Test Lab tests."
        - fi
        - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt`
        - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt`

# macOS tasks.
task:
  << : *MACOS_TEMPLATE
  << : *FLUTTER_UPGRADE_TEMPLATE
  matrix:
    ### iOS tasks ###
    - name: build_all_plugins_ipa
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      script:
        - ./script/build_all_plugins_app.sh ios --no-codesign
    - name: build-ipas+drive-examples
      env:
        PATH: $PATH:/usr/local/bin
        PLUGINS_TO_SKIP_XCTESTS: "integration_test"
        matrix:
          PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4"
          PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4"
          PLUGIN_SHARDING: "--shardIndex 2 --shardCount 4"
          PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4"
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
        SIMCTL_CHILD_MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550]
      create_simulator_script:
        - xcrun simctl list
        - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot
      build_script:
        - ./script/incremental_build.sh build-examples --ipa
        - ./script/incremental_build.sh xctest --skip $PLUGINS_TO_SKIP_XCTESTS --ios-destination "platform=iOS Simulator,name=iPhone 11,OS=latest"
        # `drive-examples` contains integration tests, which changes the UI of the application.
        # This UI change sometimes affects `xctest`.
        # So we run `drive-examples` after `xctest`, changing the order will result ci failure.
        - ./script/incremental_build.sh drive-examples --ios
    ### macOS desktop tasks ###
    - name: build_all_plugins_macos
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
      script:
        - flutter config --enable-macos-desktop
        - ./script/build_all_plugins_app.sh macos
    - name: build-macos+drive-examples
      env:
        matrix:
          CHANNEL: "master"
          CHANNEL: "stable"
        PATH: $PATH:/usr/local/bin
      build_script:
        - flutter config --enable-macos-desktop
        - ./script/incremental_build.sh build-examples --macos --no-ipa
        - ./script/incremental_build.sh drive-examples --macos

task:
  # Don't use FLUTTER_UPGRADE_TEMPLATE, Flutter tooling not needed.
  << : *MACOS_TEMPLATE
  << : *TOOL_SETUP_TEMPLATE
  matrix:
    - name: lint_darwin_plugins
      script:
        # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation.
        - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm
        - ./script/incremental_build.sh podspecs
