.cirrus.yml 6.07 KB
Newer Older
1
container:
2
  image: gcr.io/flutter-cirrus/build-flutter-image:latest
3 4 5

task:
  env:
6 7
    # Name the SDK directory to include a space so that we constantly
    # test path names with spaces in them.
8 9
    CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
    PATH: "$CIRRUS_WORKING_DIR/bin:$CIRRUS_WORKING_DIR/bin/cache/dart-sdk/bin:$PATH"
10 11 12 13
    ANDROID_HOME: "/opt/android_sdk"
  git_fetch_script:
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
14 15 16 17 18 19 20 21 22
  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/engine.version
  artifacts_cache:
    folder: bin/cache/artifacts
    fingerprint_script: echo $OS; cat bin/internal/engine.version
23
  setup_script: ./dev/bots/cirrus_setup.sh
24 25
  matrix:
    - name: docs
26 27
      env:
        SHARD: docs
28 29 30 31
        # For uploading master docs to Firebase master branch staging site
        FIREBASE_MASTER_TOKEN: ENCRYPTED[37e8b82f167864cae9a3f4d2cf3f37dea331d9375c295327c45de524f6c588fa6f6d63e5784f10f6d43ce29689f36c92]
        # For uploading beta docs to Firebase public live site
        FIREBASE_PUBLIC_TOKEN: ENCRYPTED[c422da192f06da7b4449ca8e7aa866dabeb8a0f8d7488497c2e7e447e6fd31d917e6c813db081dc4e2a7a63afdf41864]
32
      docs_script: ./dev/bots/docs.sh
33 34 35 36 37 38 39 40 41 42 43 44
    - name: deploy_gallery
      only_if: $CIRRUS_BRANCH == 'dev'
      depends_on:
        - docs
        - analyze
        - tests-linux
        - tool_tests-linux
      env:
        SHARD: deploy_gallery
        GOOGLE_DEVELOPER_SERVICE_ACCOUNT_ACTOR_FASTLANE: ENCRYPTED[d9ac1462c3c556fc2f8165c9d5566a16497d8ebc38a50357f7f3abf136b7f83e1d1d76dde36fee356cb0f9ebf7a89346]
        ANDROID_GALLERY_UPLOAD_KEY: ENCRYPTED[0b3e681b4507aec433ef29c79b715f15f8c75ecd25315ea286b0b2bcb8b28d578634eead5aa2c54086a25e8da1bb219a]
      test_script: ./dev/bots/deploy_gallery.sh
45
    - name: analyze
46 47
      env:
        SHARD: analyze
48 49
      test_script:
        - dart ./dev/bots/test.dart
50 51 52
    - name: tests-linux
      env:
        SHARD: tests
53 54
      test_script:
        - dart ./dev/bots/test.dart
55 56 57
      container:
        cpu: 4
        memory: 8G
58 59 60
    - name: tool_tests-linux
      env:
        SHARD: tool_tests
61 62
      test_script:
        - dart ./dev/bots/test.dart
63 64 65
      container:
        cpu: 4
        memory: 8G
66

67
task:
68
  windows_container:
69 70 71
    image: cirrusci/windowsservercore:2016
    os_version: 2016
    cpu: 4
72 73
  env:
    CIRRUS_WORKING_DIR: "C:\\Windows\\Temp\\flutter sdk"
74 75 76
  git_fetch_script:
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
77 78 79 80 81 82 83 84 85 86
  pub_cache:
    folder: $APPDATA\Pub\Cache
    fingerprint_script:
      - ps:  $Env:OS; Get-ChildItem -Path "$Env: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\engine.version
  artifacts_cache:
    folder: bin\cache\artifacts
    fingerprint_script: echo %OS% & type bin\internal\engine.version
87 88 89
  setup_script:
    - bin\flutter.bat config --no-analytics
    - bin\flutter.bat update-packages
90
    - git fetch origin master
91 92
  test_all_script:
    - bin\cache\dart-sdk\bin\dart.exe -c dev\bots\test.dart
93 94 95 96 97 98 99
  matrix:
    - name: tests-windows
      env:
        SHARD: tests
    - name: tool_tests-windows
      env:
        SHARD: tool_tests
100

101
task:
102 103 104 105
  name: deploy_gallery-macos
  only_if: $CIRRUS_BRANCH == 'dev'
  pub_cache:
    folder: ~/.pub-cache
106 107
  depends_on:
    - analyze
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
    - tests-macos
    - tool_tests-macos
  env:
    # Name the SDK directory to include a space so that we constantly
    # test path names with spaces in them.
    CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
    SHARD: deploy_gallery
    # Apple Certificates Match Passphrase
    MATCH_PASSWORD: ENCRYPTED[db07f252234397090e3ec59152d9ec1831f5ecd0ef97d247b1dca757bbb9ef9b7c832a39bce2caf1949ccdf097e59a73]
    # Apple Fastlane Password
    FASTLANE_PASSWORD: ENCRYPTED[0bf9bb0cc2cb32a0ed18470cf2c9df0f587cce5f8b04adbd6cff15ca5bde7a74f721ee580227b132ab6b032f08e52ae0]
    # Private repo for publishing certificates.
    PUBLISHING_MATCH_CERTIFICATE_REPO: git@github.com:flutter/private_publishing_certificates.git
  osx_instance:
    image: high-sierra-xcode-9.4.1
  git_fetch_script:
124 125
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD
126 127 128 129 130 131 132
  setup_script:
    - bin/flutter config --no-analytics
    - bin/flutter update-packages
  test_all_script:
    - ./dev/bots/deploy_gallery.sh

task:
133 134
  osx_instance:
    image: high-sierra-xcode-9.4.1
135 136
  depends_on:
    - analyze
137 138
  env:
    CIRRUS_WORKING_DIR: "/tmp/flutter sdk"
139 140 141
  git_fetch_script:
    - git fetch origin
    - git fetch origin master # To set FETCH_HEAD for "git merge-base" to work
142 143 144 145 146 147 148 149 150
  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/engine.version
  artifacts_cache:
    folder: bin/cache/artifacts
    fingerprint_script: echo $OS; cat bin/internal/engine.version
151 152 153 154 155 156
  setup_script:
    - bin/flutter config --no-analytics
    - bin/flutter update-packages
  test_all_script: |
    ulimit -S -n 2048 # https://github.com/flutter/flutter/issues/2976
    bin/cache/dart-sdk/bin/dart -c dev/bots/test.dart
157 158 159 160 161 162 163
  matrix:
    - name: tests-macos
      env:
        SHARD: tests
    - name: tool_tests-macos
      env:
        SHARD: tool_tests
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179


docker_builder:
  # Only build a new docker image when we tag a release (for dev, beta, or release.)
  only_if: $CIRRUS_TAG != ''
  env:
    GCLOUD_CREDENTIALS: ENCRYPTED[f7c098d4dd7f5ee1bfee0bb7e944cce72efbe10e97ad6440ae72de4de6a1c24d23f421a2619c668e94377fb64b0bb3e6]
  depends_on:
    - docs
    - analyze
    - tests-linux
    - tool_tests-linux
  build_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_build.sh"
  login_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_login.sh"
  push_script: "$CIRRUS_WORKING_DIR/dev/ci/docker_linux/docker_push.sh"