2014-01-10 42 views
6

私はAndroidライブラリ(RateMyApp、これはGitHubにあります)を開発していますが、新しいコードを作成するたびに、Travis CIを設定する方法がわかりません。Androidライブラリ用のTravis-CIの設定方法を教えてください。

私が使用しています.travis.ymlファイルは次のとおりです。

language: java 
script: 
    - gradle bundleRelease 

が、gradle bundleReleaseが呼び出されることはありませんので無視しているようです。代わりに、gradle assembleが代わりに呼び出されることを示唆する次の出力が表示されます。

Using worker: worker-linux-8-1.bb.travis-ci.org:travis-linux-5 

travis_fold:start:git.1 
$ git clone --depth=50 --branch=master git://github.com/mariosangiorgio/RateMyApp.git 
[...] 
mariosangiorgio/RateMyApp 
Cloning into 'mariosangiorgio/RateMyApp'... 
done. 
travis_fold:end:git.1  
$ cd mariosangiorgio/RateMyApp 
travis_fold:start:git.3 
$ git checkout -qf 90faf4539c835136895ea92dd2bcc7da12ad1145 
travis_fold:end:git.3 
$ java -version 
java version "1.7.0_45" 
Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) 
$ javac -version 
javac 1.7.0_45 
travis_fold:start:install 
$ gradle assemble 
[...] 
The command "gradle assemble" failed and exited with 1 during install. 

Your build has been stopped. 

私はpage linked in the documentationを読んだが、残念ながらそれはあまり役に立たなかった。

答えて

3

ここには、私のyamlがapkをビルドしています。しかし、それはライブラリのためにも動作するはずです。

language: java 
jdk: oraclejdk7 
branches: 
    only: 
    - master 
before_install: 
    - chmod +x gradlew 
    # Install base Android SDK 
    - sudo apt-get update -qq 
    - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch > /dev/null; fi 
    - wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz 
    - tar xzf android-sdk_r22.0.5-linux.tgz 
    - export ANDROID_HOME=$PWD/android-sdk-linux 
    - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools 
    # install android build tools 
    - wget https://dl-ssl.google.com/android/repository/build-tools_r19.0.1-linux.zip 
    - unzip build-tools_r19.0.1-linux.zip -d $ANDROID_HOME 
    - mkdir -p $ANDROID_HOME/build-tools/ 
    - mv $ANDROID_HOME/android-4.4.2 $ANDROID_HOME/build-tools/19.0.1 
    # Install required components. 
    - echo yes | android update sdk --filter platform-tools --no-ui --force > /dev/null 
    - echo yes | android update sdk --filter android-19 --no-ui --force > /dev/null 
    - echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null 
    - echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null 
install: 
    - true 
script: 
    - TERM=dumb ./gradlew test assembleDebug 

しかし、このスクリプトはどこにでも

+0

ありがとうございました!あなたはTravisCIにアーティファクトをどこかに公開させるために私が読むことができる何かについて私に指示を与えてもらえますか? – mariosangiorgio

+0

残念ながら、それは動作しません。私には[エラーメッセージ](https://travis-ci.org/mariosangiorgio/RateMyApp/builds/16812539)があります。何が原因かもしれないか考えていますか? – mariosangiorgio

+1

'TERM = dumb'をグラデーションライン' -TERM = dumb ./gradlew bundleRelease'に追加できますか? –

3

私はHiltため.travis.ymlSDK installerスクリプトを使用し構築されたアーティファクトをプッシュしていないので注意してください。

language: java 
jdk: oraclejdk7 
before_install: 
    # Install base Android SDK and components 
    - sudo apt-get update -qq 
    - sudo apt-get install -qq libstdc++6:i386 lib32z1 expect 
    - export COMPONENTS=build-tools-19.0.3,android-19,extra-android-support,extra-android-m2repository,extra-google-m2repository 
    - export LICENSES=android-sdk-license-bcbbd656 
    - curl -3L https://raw.github.com/embarkmobile/android-sdk-installer/version-2/android-sdk-installer | bash /dev/stdin --install=$COMPONENTS --accept=$LICENSES 
    - source ~/.android-sdk-installer/env 

install: 
    # Without TERM=dumb, we get mangled output in the Travis console 
    - TERM=dumb ./gradlew clean assemble -PdisablePreDex 

script: 
    - TERM=dumb ./gradlew check -PdisablePreDex 

EDIT:トラヴィス-CIは、第一級の市民としてのAndroidを実施している - http://blog.travis-ci.com/2014-05-07-android-build-support-now-in-beta/

1

をあなたはgradle assemble代わりのgradle bundleReleaseを見ている理由を対処するために:

gradle assembleは、デフォルトで起動されますTravisのinstall:ステージ(ステージの説明についてはTravis docsthis noteを参照)。

スクリプトのinstall:セクションにデフォルトを上書きするセクションがないため、Travisはgradle assembleを呼び出しています。

あなたはインストール段階で何かをしないようトラヴィスに指示され、次の行を追加することでこれを防ぐことができます。

install: 
    - true 

私はトラヴィスは、私はそれがgradlew assembleDebugを実行したいgradle assembleを実行すると、a similar issueを持っていました。

ので、私にとっては、(Android as a first class citizenで2014年5月1日現在)完全な作業スクリプトは次のとおりです。私hereのためにこれを明確にするためのAustynマホーニーへ

language: android 
jdk: oraclejdk7 

android: 
    components: 
    - build-tools-19.0.1 

install: 
    - true 

script: TERM=dumb ./gradlew assembleDebug 

感謝。 2014年5月8日のよう

EDIT

hereに論じたように、トラビスCIは、Androidのベータのデフォルトinstall:ステージを除去しました。したがって、スクリプトからinstall:ステージを削除できるようになりました。トラビスではgradle assembleを実行しないでください。

関連する問題