creativecreatorormaybenot

Update CI

1 -language: bash  
2 -os:  
3 - - osx  
4 -env:  
5 - - FLUTTER_CHANNEL="stable"  
6 - - FLUTTER_CHANNEL="master"  
7 -sudo: false  
8 -before_script:  
9 - - cd ..  
10 - - git clone https://github.com/flutter/flutter.git -b $FLUTTER_CHANNEL  
11 - - export PATH=$PATH:$PWD/flutter/bin:$PWD/flutter/bin/cache/dart-sdk/bin 1 +# Based on https://medium.com/@nocnoc/flutter-unit-widget-and-integration-testing-with-ios-and-android-emulators-on-travis-ci-df17ed7c3be
  2 +jobs:
  3 + include:
  4 + - &integration-test-stage
  5 + stage: Integration Testing
  6 + sudo: true
  7 + dist: trusty
  8 + language: generic
  9 + os: linux
  10 + env: Android
  11 + # Run integration tests on Android
  12 + before_install:
  13 + - sudo apt-get install -y --no-install-recommends lib32stdc++6 libstdc++6 > /dev/null
  14 + # Install the Android SDK Dependency.
  15 + - export ANDROID_HOME=/opt/android-sdk-linux
  16 + - cd /opt
  17 + - wget -q https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip -O android-sdk-tools.zip
  18 + - unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}
  19 + - rm android-sdk-tools.zip
12 - cd - 20 - cd -
13 - - flutter doctor  
14 -script:  
15 - - set -e  
16 - - ./ci/drive.sh  
17 -matrix:  
18 - fast_finish: true  
19 -cache:  
20 - directories:  
21 - - $HOME/.pub-cache  
  21 + - PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
  22 + # Silence warning.
  23 + - mkdir -p ~/.android
  24 + - touch ~/.android/repositories.cfg
  25 + # Accept licenses before installing components, no need to echo "y" for each component
  26 + - yes | sdkmanager --licenses
  27 + # Platform tools
  28 + - sdkmanager "emulator" "tools" "platform-tools" > /dev/null
  29 + - sdkmanager --list | head -15
  30 + # install older packages (for emulator)
  31 + - sdkmanager "build-tools;25.0.2" "platforms;android-25" > /dev/null
  32 +
  33 + # Create and start emulator.
  34 + - EMULATOR_API_LEVEL=22
  35 + - ANDROID_ABI="default;armeabi-v7a"
  36 + - sdkmanager "system-images;android-$EMULATOR_API_LEVEL;$ANDROID_ABI" > /dev/null
  37 + - sdkmanager --list | head -15
  38 + - echo no | avdmanager create avd --force -n test -k "system-images;android-$EMULATOR_API_LEVEL;$ANDROID_ABI"
  39 + - $ANDROID_HOME/emulator/emulator -avd test -no-audio -no-window -gpu swiftshader &
  40 +
  41 + # install pre-compiled flutter
  42 + - FLUTTER_CHANNEL=stable
  43 + - FLUTTER_VERSION=1.0.0-${FLUTTER_CHANNEL}
  44 + - wget --quiet --output-document=flutter.tar.xz https://storage.googleapis.com/flutter_infra/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_v${FLUTTER_VERSION}.tar.xz && tar xf flutter.tar.xz > /dev/null && rm flutter.tar.xz
  45 + - export PATH="$PATH":"$HOME/.pub-cache/bin"
  46 + - export PATH=$PWD/flutter/bin:$PWD/flutter/bin/cache/dart-sdk/bin:$PATH
  47 + - flutter doctor -v
  48 +
  49 + # Wait for emulator to finish startup.
  50 + - ./script/android-wait-for-emulator.sh
  51 + - adb shell input keyevent 82
  52 + - flutter devices
  53 + script: travis_retry flutter driver test_driver/app.dart
  54 + - <<: *integration-test-stage
  55 + os: osx
  56 + osx_image: xcode8.0
  57 + env: iOS
  58 + # Run integration tests on ios
  59 + before_install:
  60 + - open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app
  61 + - export HOMEBREW_NO_AUTO_UPDATE=1
  62 + - brew install libimobiledevice
  63 + - brew install ideviceinstaller
  64 + - brew install ios-deploy
  65 + - brew install cocoapods || echo 'ignore exit(1)'
  66 + - brew link --overwrite cocoapods
  67 +
  68 + # install pre-compiled flutter
  69 + - FLUTTER_CHANNEL=stable
  70 + - FLUTTER_VERSION=1.0.0-${FLUTTER_CHANNEL}
  71 + - wget --quiet --output-document=flutter.zip https://storage.googleapis.com/flutter_infra/releases/${FLUTTER_CHANNEL}/macos/flutter_macos_v${FLUTTER_VERSION}.zip && unzip -qq flutter.zip > /dev/null && rm flutter.zip
  72 + - export PATH="$PATH":"$HOME/.pub-cache/bin"
  73 + - export PATH=$PWD/flutter/bin:$PWD/flutter/bin/cache/dart-sdk/bin:$PATH
  74 + - flutter doctor -v
  75 + script: travis_retry flutter driver test_driver/main.dart
1 -# Continuous Integration  
2 -  
3 -Due to creativecreatorormaybenot lacking knowledge, the current Travis CI implementation is based on [provider's setup](https://github.com/rrousselGit/provider/blob/09c7fdebc382121f1a497180a6fe393a5e54b904/.travis.yml).  
1 -set -e  
2 -cd $1  
3 -flutter packages get  
4 -flutter format --set-exit-if-changed .  
5 -flutter analyze --no-current-package .  
6 -cd example  
7 -flutter drive --target=test_driver/app.dart  
8 -cd -