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
177 changes: 136 additions & 41 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,143 @@
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=6
- NODE_VERSION=8
- EMULATOR_API_LEVEL=22
- ANDROID_VERSION=25
- ANDROID_BUILD_TOOLS_VERSION=26.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
before_install:
- nvm install $NODE_VERSION
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: "6"
jdk: oraclejdk8
before_install:
- cd nativescript-angular
- npm install
- cd ../tests
- npm install
- cd ..
script:
- cd nativescript-angular
- npm run ngc
- cd ../tests
- tns build ios
- os: osx
env:
- Build="iOS"
osx_image: xcode8.3
language: node_js
node_js: "8"
jdk: oraclejdk8
before_install:
- cd nativescript-angular
- npm install
- cd ../tests
- npm install
- cd ..
script:
- cd nativescript-angular
- npm run ngc
- cd ../tests
- tns build ios
- language: android
node_js: "6"
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
- cd ../tests
- npm install
- cd ..
- android-wait-for-emulator
- adb shell input keyevent 82 &
script:
- cd nativescript-angular
- npm run ngc
- cd ../tests
- tns build android
- language: android
node_js: "8"
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
- cd ../tests
- npm install
- cd ..
- android-wait-for-emulator
- adb shell input keyevent 82 &
script:
- cd nativescript-angular
- npm run ngc
- cd ../tests
- tns build android

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
- build-tools-$ANDROID_BUILD_TOOLS_VERSION
- 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
10 changes: 8 additions & 2 deletions tests/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
{
"nativescript": {
"id": "org.nativescript.ngtests"
"id": "org.nativescript.ngtests",
"tns-ios": {
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you remove the platforms here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

no, because than tns build will fail with version of undefined errors

Copy link
Contributor

Choose a reason for hiding this comment

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

Ok, change the versions to 'next' then :)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done ;)

"version": "next"
},
"tns-android": {
"version": "next"
}
},
"name": "ngtests",
"main": "app.js",
Expand Down Expand Up @@ -68,4 +74,4 @@
"compile-tests-w": "tsc -p e2e --watch",
"update-app-ng-deps": "update-app-ng-deps"
}
}
}