From 428136b878163f95f2cbe9b89b7734734e28150b Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Fri, 14 Apr 2017 14:44:11 +0200 Subject: [PATCH 1/6] chore(ci-build): Let android tests run on travis --- .travis.yml | 1 + tests/package.json | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 903364dbc..770769ffb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,6 +41,7 @@ script: - tns build android - android-wait-for-emulator - npm run run-appium-android +- npm run test before_deploy: - cd ../nativescript-angular - npm install -g nativescript --ignore-scripts diff --git a/tests/package.json b/tests/package.json index 7b579e011..7a87652a9 100644 --- a/tests/package.json +++ b/tests/package.json @@ -65,6 +65,9 @@ "wd": "0.4.0" }, "scripts": { + "test": "npm run test-android", + "test-android": "tns test android --emulator --justlaunch", + "test-ios": "tns test ios --emulator --justlaunch", "updateTests": "grunt updateTests", "appium-android": "tns build android && npm run run-appium-android", "run-appium-android": "nativescript-dev-appium android", From 81cf25a7fa152c03ed116d6bebb09af6801fef8b Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Mon, 17 Apr 2017 11:54:49 +0200 Subject: [PATCH 2/6] chore(build): Adding iOS Travis build --- .travis.yml | 88 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 63 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index 770769ffb..bcb593bb8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,43 +1,81 @@ +os: osx +osx_image: xcode8.3 +sudo: false +language: objective-c + env: global: - - NODE_VERSION=6.9.1 - - DATE=$(date +%Y-%m-%d) - - PACKAGE_VERSION=$DATE-$TRAVIS_BUILD_NUMBER -language: android -jdk: -- oraclejdk8 -android: - components: - - platform-tools - - build-tools-23.0.1 - - android-23 - - extra-android-m2repository - - sys-img-armeabi-v7a-android-19 + - NODE_VERSION=6.9.1 + - DATE=$(date +%Y-%m-%d) + - PACKAGE_VERSION=$DATE-$TRAVIS_BUILD_NUMBER + matrix: + - NODE_VERSION="6" NPM_VERSION="3" TNS_VERSION="rc" + - NODE_VERSION="7" NPM_VERSION="3" TNS_VERSION="rc" + + before_cache: - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock cache: directories: - "$HOME/.gradle/caches/" - "$HOME/.gradle/wrapper/" + +before_install: + - export ANDROID_HOME=/usr/local/share/android-sdk + - export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools + - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash + - source ~/.nvm/nvm.sh && nvm install $NODE_VERSION && nvm use $NODE_VERSION + - PATH="`npm bin`:`npm bin -g`:$PATH" + - brew update > /dev/null; + - brew install Caskroom/cask/android-sdk + - echo y | sdkmanager 'tools' + - echo y | sdkmanager 'platform-tools' + - echo y | sdkmanager 'build-tools;25.0.2' + - echo y | sdkmanager 'platforms;android-25' + - echo y | sdkmanager 'extras;android;m2repository' + - echo y | sdkmanager 'extras;google;google_play_services' + - echo y | sdkmanager 'extras;google;m2repository' + - mkdir "$ANDROID_HOME/licenses" || true + - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" + - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" + - npm install -g npm@$NPM_VERSION + - npm install -g nativescript@$TNS_VERSION + - npm install + # CocoaPods + - gem install cocoapods --pre --no-rdoc --no-ri --no-document --quiet + - gem install xcpretty --no-rdoc --no-ri --no-document --quiet + - pod --version + - pod setup --silent + - pod repo update --silent + # Show environment invo + - node --version + - npm --version + - xcpretty --version + - xcodebuild -version + - xcodebuild -showsdks + - echo $ANDROID_HOME + install: -- 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 -- cd nativescript-angular -- npm install -- npm run tslint -- cd ../tests -- npm install -- tns platform add android + - 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 + - cd nativescript-angular + - npm install + - npm run tslint + - cd ../tests + - npm install + - tns platform add android + - tns platform add ios before_script: - echo no | android create avd --force -n test -t android-19 -b armeabi-v7a - emulator -memory 1024 -avd test -no-audio -no-window & script: - - +- tns build ios - tns build android - android-wait-for-emulator - npm run run-appium-android From 7937aa42ed02fb26ad79ff9ffc9ae81c499d19cc Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Wed, 19 Apr 2017 12:07:17 +0200 Subject: [PATCH 3/6] chore(build): Fix travis Android setup --- .travis.yml | 59 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index bcb593bb8..91f7238c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,15 @@ language: objective-c env: global: + - API=19 # Google API 19 by default + - TAG=google_apis # Google APIs by default, alternatively use default + - ABI=armeabi-v7a # ARM ABI v7a by default - NODE_VERSION=6.9.1 - DATE=$(date +%Y-%m-%d) - PACKAGE_VERSION=$DATE-$TRAVIS_BUILD_NUMBER matrix: - - NODE_VERSION="6" NPM_VERSION="3" TNS_VERSION="rc" - - NODE_VERSION="7" NPM_VERSION="3" TNS_VERSION="rc" + - NODE_VERSION="6" NPM_VERSION="3" + - NODE_VERSION="7" NPM_VERSION="3" before_cache: @@ -21,6 +24,7 @@ cache: - "$HOME/.gradle/wrapper/" before_install: + - export EMULATOR="system-images;android-${API};${TAG};${ABI}" # Used to install/create emulator - export ANDROID_HOME=/usr/local/share/android-sdk - export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash @@ -28,26 +32,37 @@ before_install: - PATH="`npm bin`:`npm bin -g`:$PATH" - brew update > /dev/null; - brew install Caskroom/cask/android-sdk + # Tools - echo y | sdkmanager 'tools' + # Platform tools - echo y | sdkmanager 'platform-tools' - - echo y | sdkmanager 'build-tools;25.0.2' + # SDKs - echo y | sdkmanager 'platforms;android-25' + # build tools + - echo y | sdkmanager 'build-tools;25.0.2' + # Android System Images, for emulators + - echo y | sdkmanager 'system-images;android-24;default;armeabi-v7a' + - echo y | sdkmanager 'system-images;android-22;default;armeabi-v7a' + - echo y | sdkmanager 'system-images;android-21;default;armeabi-v7a' + - echo y | sdkmanager 'system-images;android-19;default;armeabi-v7a' + - echo y | sdkmanager 'system-images;android-19;google_apis;armeabi-v7a' + # Extras - echo y | sdkmanager 'extras;android;m2repository' - echo y | sdkmanager 'extras;google;google_play_services' - echo y | sdkmanager 'extras;google;m2repository' + # google apis + - echo y | sdkmanager 'add-ons;addon-google_apis-google-23' - mkdir "$ANDROID_HOME/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" - npm install -g npm@$NPM_VERSION - - npm install -g nativescript@$TNS_VERSION - - npm install # CocoaPods - gem install cocoapods --pre --no-rdoc --no-ri --no-document --quiet - gem install xcpretty --no-rdoc --no-ri --no-document --quiet - pod --version - pod setup --silent - pod repo update --silent - # Show environment invo + # Show environment info - node --version - npm --version - xcpretty --version @@ -69,23 +84,27 @@ install: - npm install - tns platform add android - tns platform add ios + before_script: -- echo no | android create avd --force -n test -t android-19 -b armeabi-v7a -- emulator -memory 1024 -avd test -no-audio -no-window & + - echo no | avdmanager create avd --name test -k "$EMULATOR" -f --abi "$ABI" --tag "$TAG" + - emulator -memory 1024 -avd test -no-audio -no-window & + script: -- -- -- tns build ios -- tns build android -- android-wait-for-emulator -- npm run run-appium-android -- npm run test + - + - + - tns build ios + - tns build android + - android-wait-for-emulator + - npm run run-appium-android + - npm run test + before_deploy: -- cd ../nativescript-angular -- npm install -g nativescript --ignore-scripts -- tns usage-reporting disable -- tns error-reporting disable -- node ../build/travis-scripts/add-publishConfig.js internal-preview $PACKAGE_VERSION + - cd ../nativescript-angular + - npm install -g nativescript --ignore-scripts + - tns usage-reporting disable + - tns error-reporting disable + - node ../build/travis-scripts/add-publishConfig.js internal-preview $PACKAGE_VERSION + deploy: provider: npm email: nativescript@telerik.com From 796acb2a7b14a4daf7eb72ae3935efe521a52012 Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Wed, 19 Apr 2017 12:51:22 +0200 Subject: [PATCH 4/6] chore(build): Fix android emulator wait --- .travis.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 91f7238c2..7143821c5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,10 @@ env: - API=19 # Google API 19 by default - TAG=google_apis # Google APIs by default, alternatively use default - ABI=armeabi-v7a # ARM ABI v7a by default - - NODE_VERSION=6.9.1 - DATE=$(date +%Y-%m-%d) - PACKAGE_VERSION=$DATE-$TRAVIS_BUILD_NUMBER matrix: - - NODE_VERSION="6" NPM_VERSION="3" + - NODE_VERSION="6.9.1" NPM_VERSION="3" - NODE_VERSION="7" NPM_VERSION="3" @@ -86,8 +85,12 @@ install: - tns platform add ios before_script: - - echo no | avdmanager create avd --name test -k "$EMULATOR" -f --abi "$ABI" --tag "$TAG" + - echo no | avdmanager create avd --name test -k "$EMULATOR" -f + --abi "$ABI" --tag "$TAG" - emulator -memory 1024 -avd test -no-audio -no-window & + - wget https://raw.githubusercontent.com/travis-ci/travis-cookbooks/master/community-cookbooks/android-sdk/files/default/android-wait-for-emulator + - chmod a+x ./android-wait-for-emulator + - ./android-wait-for-emulator script: - From 729ce3468a5a7a6b100abdb9887b211b753b5c7b Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Wed, 19 Apr 2017 12:52:44 +0200 Subject: [PATCH 5/6] chore(build): Fix lint errors --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7143821c5..02b0ff919 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,8 +85,7 @@ install: - tns platform add ios before_script: - - echo no | avdmanager create avd --name test -k "$EMULATOR" -f - --abi "$ABI" --tag "$TAG" + - echo no | avdmanager create avd --name test -k "$EMULATOR" -f --abi "$ABI" --tag "$TAG" - emulator -memory 1024 -avd test -no-audio -no-window & - wget https://raw.githubusercontent.com/travis-ci/travis-cookbooks/master/community-cookbooks/android-sdk/files/default/android-wait-for-emulator - chmod a+x ./android-wait-for-emulator From a309a985d1236683a33afc37fc90e23f2f91d21f Mon Sep 17 00:00:00 2001 From: Martin Reinhardt Date: Thu, 20 Apr 2017 12:26:26 +0200 Subject: [PATCH 6/6] chore(build): Fix Android setup on travis --- .travis.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 02b0ff919..251a52470 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ language: objective-c env: global: - - API=19 # Google API 19 by default + - API=21 # Google API 19 by default - TAG=google_apis # Google APIs by default, alternatively use default - ABI=armeabi-v7a # ARM ABI v7a by default - DATE=$(date +%Y-%m-%d) @@ -25,7 +25,7 @@ cache: before_install: - export EMULATOR="system-images;android-${API};${TAG};${ABI}" # Used to install/create emulator - export ANDROID_HOME=/usr/local/share/android-sdk - - export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools + - export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH - wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash - source ~/.nvm/nvm.sh && nvm install $NODE_VERSION && nvm use $NODE_VERSION - PATH="`npm bin`:`npm bin -g`:$PATH" @@ -43,8 +43,7 @@ before_install: - echo y | sdkmanager 'system-images;android-24;default;armeabi-v7a' - echo y | sdkmanager 'system-images;android-22;default;armeabi-v7a' - echo y | sdkmanager 'system-images;android-21;default;armeabi-v7a' - - echo y | sdkmanager 'system-images;android-19;default;armeabi-v7a' - - echo y | sdkmanager 'system-images;android-19;google_apis;armeabi-v7a' + - echo y | sdkmanager 'system-images;android-21;google_apis;armeabi-v7a' # Extras - echo y | sdkmanager 'extras;android;m2repository' - echo y | sdkmanager 'extras;google;google_play_services' @@ -54,6 +53,10 @@ before_install: - mkdir "$ANDROID_HOME/licenses" || true - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license" - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license" + # create and start emulator + - echo no | avdmanager create avd --name test -k "$EMULATOR" -f --abi "$ABI" --tag "$TAG" + - emulator -avd test -gpu off -skin 768x1280 -no-audio -no-window & + # frontend libs - npm install -g npm@$NPM_VERSION # CocoaPods - gem install cocoapods --pre --no-rdoc --no-ri --no-document --quiet @@ -85,18 +88,17 @@ install: - tns platform add ios before_script: - - echo no | avdmanager create avd --name test -k "$EMULATOR" -f --abi "$ABI" --tag "$TAG" - - emulator -memory 1024 -avd test -no-audio -no-window & - - wget https://raw.githubusercontent.com/travis-ci/travis-cookbooks/master/community-cookbooks/android-sdk/files/default/android-wait-for-emulator + # lets wait for the android emulator + - wget "https://raw.githubusercontent.com/travis-ci/travis-cookbooks/master/community-cookbooks/android-sdk/files/default/android-wait-for-emulator" - chmod a+x ./android-wait-for-emulator - ./android-wait-for-emulator + - adb shell input keyevent 82 & script: - - - tns build ios - tns build android - - android-wait-for-emulator - npm run run-appium-android - npm run test