-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
86 lines (76 loc) · 3.48 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
language: generic
cache:
directories:
- $HOME/.pub-cache
- $HOME/.gradle
- $PWD/android/.gradle
jobs:
include:
- stage: Integration Tests
env: Genymotion Test
before_install: &BEFORE_INSTALL
# Install the Android SDK Dependency.
- export ANDROID_HOME=$PWD/android-sdk-linux
- wget -q https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip -O android-sdk-tools.zip
- unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}
- rm android-sdk-tools.zip
- PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
# Silence warning.
- mkdir -p ~/.android
- touch ~/.android/repositories.cfg
# Accept licenses before installing components, no need to echo y for each component
- yes | sdkmanager --licenses
# Platform tools
# - sdkmanager "emulator" "tools" "platform-tools" > /dev/null
- sdkmanager "tools" "platform-tools" "build-tools;27.0.3" "platforms;android-27" > /dev/null
- sdkmanager --list | head -15
# install pre-compiled flutter
- FLUTTER_CHANNEL=stable
- FLUTTER_VERSION=1.0.0-${FLUTTER_CHANNEL}
- |
sudo apt-get install -y --no-install-recommends lib32stdc++6 libstdc++6 > /dev/null
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
export PATH="$PATH":"$HOME/.pub-cache/bin"
export PATH=$PWD/flutter/bin:$PWD/flutter/bin/cache/dart-sdk/bin:$PATH
- flutter doctor -v
before_script:
# setup ssh tunnel to genymotion emulator
- ssh-keyscan -t rsa -H $GENYMOTION_EMULATOR >> ~/.ssh/known_hosts
- openssl enc -aes-256-cbc -d -in genymotion.pem.enc -out genymotion.pem -k $GENYMOTION_PEM_PASSWORD
- chmod 0600 genymotion.pem
- ssh -i ./genymotion.pem -t shell@$GENYMOTION_EMULATOR "setprop persist.sys.usb.config adb"
- ssh -i ./genymotion.pem -NL 5555:localhost:5555 shell@$GENYMOTION_EMULATOR &
- adb kill-server
- adb start-server
- adb connect localhost:5555
- adb devices
script:
- flutter driver test_driver/transitions_perf.dart
- stage:
env: Saucelabs test
before_install: *BEFORE_INSTALL
install:
# install sauce labs runner
- SAUCE_RUNNER_VERSION=0.0.17
- SAUCE_RUNNER=sauce-runner-virtual-$SAUCE_RUNNER_VERSION-linux
- |
wget --quiet https://saucelabs.com/downloads/$SAUCE_RUNNER.zip
unzip -qq $SAUCE_RUNNER.zip > /dev/null
rm $SAUCE_RUNNER.zip
export PATH="$PATH":"$PWD/$SAUCE_RUNNER/bin"
before_script:
# setup android/local.properties
- export FLUTTER_ROOT=$PWD/flutter
- flutter packages get
- dart tool/setup_local_properties.dart
# build apks required by espresso
# - |
# cd android
# ./gradlew assembleAndroidTest assembleDebug
# cd ..
- tool/run_instrumentation_test.sh || echo 'ignore exit(1)'
script:
# run espresso in sauce labs
- sauce-runner-virtual -u $SAUCE_USER -f espresso -a build/app/outputs/apk/debug/app-debug.apk -t build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk -d 'deviceName=Google Pixel GoogleAPI Emulator,platformVersion=7.0'