task:
  use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == ''
  container:
    dockerfile: .ci/Dockerfile
    cpu: 8
    memory: 16G
  upgrade_script:
    - flutter channel stable
    - flutter upgrade
    - flutter channel master
    - flutter upgrade
    - git fetch origin master
  activate_script: pub global activate flutter_plugin_tools
  matrix:
    - name: publishable
      script:
        # Temporarily disabling CI on stable to allow using new Flutter features closely
        # before a new release.
        # TODO(franciscojma): re-enable this
        - flutter channel master
        - ./script/check_publish.sh
    - name: format
      install_script:
        - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
        - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main"
        - sudo apt-get update
        - sudo apt-get install -y --allow-unauthenticated clang-format-7
      format_script: ./script/incremental_build.sh format --travis --clang-format=clang-format-7
    - name: test
      env:
        matrix:
          CHANNEL: "master"
          # Temporarily disabling CI on stable to allow using new Flutter features closely
          # before a new release.
          # TODO(amirh): re-enable this
          # https://github.com/flutter/flutter/issues/46258
          # CHANNEL: "stable"
      test_script:
        # TODO(jackson): Allow web plugins once supported on stable
        # https://github.com/flutter/flutter/issues/42864
        - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
        - flutter channel $CHANNEL
        - ./script/incremental_build.sh test
    - name: analyze
      script: ./script/incremental_build.sh analyze
    - name: build_all_plugins_apk
      script:
        # TODO(jackson): Allow web plugins once supported on stable
        # https://github.com/flutter/flutter/issues/42864
        - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
        - flutter channel $CHANNEL
        - ./script/build_all_plugins_app.sh apk
    - name: build-apks+java-test+firebase-test-lab
      env:
        matrix:
          PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2"
          PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2"
        matrix:
          CHANNEL: "master"
          # Temporarily disabling CI on stable to allow using new Flutter features closely
          # before a new release.
          # TODO(amirh): re-enable this
          # https://github.com/flutter/flutter/issues/46258
          # CHANNEL: "stable"
        MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550]
        GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[07586610af1fdfc894e5969f70ef2458341b9b7e9c3b7c4225a663b4a48732b7208a4d91c3b7d45305a6b55fa2a37fc4]
      script:
        # TODO(jackson): Allow web plugins once supported on stable
        # https://github.com/flutter/flutter/issues/42864
        - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
        - flutter channel $CHANNEL
        # 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 [[ $GCLOUD_FIREBASE_TESTLAB_KEY == ENCRYPTED* ]]; then
        -   echo "This user does not have permission to run Firebase Test Lab tests."
        - else
        -   echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json
        -   ./script/incremental_build.sh firebase-test-lab
        - fi
        - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt`
        - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt`

task:
  use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
  osx_instance:
    image: mojave-xcode-11.2.1-flutter
  setup_script:
    - pod repo update
  upgrade_script:
    - flutter channel stable
    - flutter upgrade
    - flutter channel master
    - flutter upgrade
    - git fetch origin master
  activate_script: pub global activate flutter_plugin_tools
  create_simulator_script:
    - xcrun simctl list
    - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-2 | xargs xcrun simctl boot
  matrix:
    - name: build_all_plugins_ipa
      script:
        # TODO(jackson): Allow web plugins once supported on stable
        # https://github.com/flutter/flutter/issues/42864
        - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
        - flutter channel $CHANNEL
        - ./script/build_all_plugins_app.sh ios --no-codesign
    - name: lint_darwin_plugins
      script: ./script/lint_darwin_plugins.sh
    - name: build-ipas+drive-examples
      env:
        PATH: $PATH:/usr/local/bin
        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"
          # Temporarily disabling CI on stable to allow using new Flutter features closely
          # before a new release.
          # TODO(amirh): re-enable this
          # https://github.com/flutter/flutter/issues/46258
          # CHANNEL: "stable"
        SIMCTL_CHILD_MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550]
      build_script:
        # TODO(jackson): Allow web plugins once supported on stable
        # https://github.com/flutter/flutter/issues/42864
        - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi
        - flutter channel $CHANNEL
        - ./script/incremental_build.sh build-examples --ipa
        - ./script/incremental_build.sh drive-examples
task:
  use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true'
  osx_instance:
    image: mojave-xcode-11.2.1-flutter
  setup_script:
    - pod repo update
    - flutter config --enable-macos-desktop
  upgrade_script:
    - flutter channel master
    - flutter upgrade
    - git fetch origin master
  activate_script: pub global activate flutter_plugin_tools
  matrix:
    - name: build_all_plugins_app
      script:
        - flutter channel master
        - ./script/build_all_plugins_app.sh macos
    - name: lint_darwin_plugins
      script: ./script/lint_darwin_plugins.sh
    - name: build-apps+drive-examples
      env:
        PATH: $PATH:/usr/local/bin
      build_script:
        - flutter channel master
        - ./script/incremental_build.sh build-examples --macos --no-ipa
        - ./script/incremental_build.sh drive-examples --macos
