Showing
3 changed files
with
74 additions
and
31 deletions
| 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 |
ci/README.md
deleted
100644 → 0
-
Please register or login to post a comment