Skip to content

ci(travis): utilize stages and add Android and iOS builds #1176

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Mar 22, 2018
129 changes: 88 additions & 41 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,95 @@
env:
global:
- NODE_VERSION=8.9.0
- EMULATOR_API_LEVEL=19
- ANDROID_VERSION=25
- ANDROID_BUILD_TOOLS_VERSION=25.0.2
- ANDROID_ABI=armeabi-v7a
- APPIUM_VERSION=1.7.0
- EMULATOR_NAME=test
language: android
jdk:
- oraclejdk8
- NODE_VERSION=8.9.0
- EMULATOR_API_LEVEL=22
- ANDROID_VERSION=25
- ANDROID_BUILD_TOOLS_VERSION=25.0.2
- ANDROID_ABI=armeabi-v7a
- APPIUM_VERSION=1.7.0
- EMULATOR_NAME=test
- ANDROID_TAG=google_apis

matrix:
include:
- stage: "Lint"
language: node_js
os: linux
node_js: "6"
script:
- cd nativescript-angular
- npm install
- npm run tslint
- stage: "Build"
os: osx
env:
- Build="iOS"
osx_image: xcode8.3
language: node_js
node_js: "8"
jdk: oraclejdk8
before_install:
- cd nativescript-angular
- npm install
- npm run ngc
- cd ..
script:
- tns build ios
- cd tests
- npm install
- language: android
os: linux
env:
- Build="Android"
jdk: oraclejdk8
before_install:
- echo no | android create avd --force -n $EMULATOR_NAME -t "android-"$EMULATOR_API_LEVEL --abi $ANDROID_ABI --tag $ANDROID_TAG -c 12M
- QEMU_AUDIO_DRV=none emulator -avd $EMULATOR_NAME -no-window &
- nvm install $NODE_VERSION
- cd nativescript-angular
- npm install
- npm run ngc
- cd ..
- android-wait-for-emulator
- adb shell input keyevent 82 &
script:
- tns build android
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be the last step (after navigating to tests and running npm install)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sis0k0 the adb shell or the build?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ping @hypery2k ^

- cd tests
- npm install

android:
components:
- tools
- platform-tools
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
- android-$ANDROID_VERSION
- android-$EMULATOR_API_LEVEL
- extra-android-support
- extra-android-m2repository
- sys-img-$ANDROID_ABI-android-$EMULATOR_API_LEVEL
- tools
- platform-tools
- build-tools-25.0.2
- android-25
- android-$EMULATOR_API_LEVEL
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-25
# Specify at least one system image,
# if you need to run emulator(s) during your tests
- sys-img-armeabi-v7a-android-26
- sys-img-armeabi-v7a-android-25
- sys-img-armeabi-v7a-android-17
- sys-img-armeabi-v7a-android-19
- sys-img-armeabi-v7a-google_apis-$EMULATOR_API_LEVEL
licenses:
- ".+"

before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock

cache:
directories:
- "$HOME/.gradle/caches/"
- "$HOME/.gradle/wrapper/"
directories:
- .nvm
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/

install:
- nvm install $NODE_VERSION
- npm install -g typings
- echo y | $ANDROID_HOME/tools/android update sdk --filter tools --all --no-ui
- wget -O ./nativescript.tgz "https://s3.amazonaws.com/nativescript-ci/build_result/nativescript.tgz"
- npm install -g nativescript.tgz --ignore-scripts
- tns usage-reporting disable
- tns error-reporting disable
- cd nativescript-angular
- npm install
- npm run tslint
- cd ../tests
- npm install
before_script:
- echo no | android create avd --force -n $EMULATOR_NAME -t android-$EMULATOR_API_LEVEL --abi $ANDROID_ABI -c 12M
- emulator -avd $EMULATOR_NAME -no-skin -no-audio -no-window &
- android-wait-for-emulator
script:
- tns build android
- android-wait-for-emulator
- nvm install $NODE_VERSION
- npm install -g typings
- wget -O ./nativescript.tgz "https://s3.amazonaws.com/nativescript-ci/build_result/nativescript.tgz"
- npm install -g nativescript.tgz --ignore-scripts
- tns usage-reporting disable
- tns error-reporting disable