我应该如何为Android库配置Travis CI?
我正在开发一个Android库(,你可以在GitHub上找到),但我不知道每次推新代码时应该如何设置来构建它 我使用的我应该如何为Android库配置Travis CI?,android,travis-ci,Android,Travis Ci,我正在开发一个Android库(,你可以在GitHub上找到),但我不知道每次推新代码时应该如何设置来构建它 我使用的.travis.yml文件如下所示: language: java script: - gradle bundleRelease 但它似乎被忽略了,因为从未调用过gradlebundrelease。取而代之的是,我得到了以下输出,它建议我调用gradleassemble Using worker: worker-linux-8-1.bb.travis-ci.org:tr
.travis.yml
文件如下所示:
language: java
script:
- gradle bundleRelease
但它似乎被忽略了,因为从未调用过gradlebundrelease
。取而代之的是,我得到了以下输出,它建议我调用gradleassemble
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.
我读了,但不幸的是,它对我没有多大帮助。这是我的
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
但是要小心,因为这个脚本不会将构建的人工制品推送到任何地方我在for中使用了一个脚本
编辑:Travis CI已将Android作为一等公民来实施-以解决为什么您看到的是
gradle assemble
而不是gradle Bundrelease
:
默认情况下,Travis的install:
stage中会调用gradle assembly
(有关stage和的说明,请参阅)
由于脚本中没有install:
部分来覆盖默认设置,Travis正在调用gradle assemble
您可以通过添加以下行来防止这种情况,这些行告诉Travis在安装阶段不要执行任何操作:
install:
- true
当我想让Travis执行gradlew AssembledBug时,Travis执行了gradle assemble
因此,对我来说,完整的工作脚本(截至2014年5月1日)是:
感谢奥斯汀·马奥尼为我澄清了这一点
编辑
如前所述,截至2014年5月8日,Travis CI已删除Android beta版的默认
安装:
阶段。因此,您现在应该能够从脚本中删除安装:
阶段,Travis不应该执行gradle Assembly
谢谢!你能告诉我一些我能读到的东西,让TravisCI在某处发布工件吗?不幸的是,它不起作用。我知道了。你知道是什么引起的吗?你能在gradle行中添加TERM=dumb
吗-TERM=dumb./gradlew bundleRelease
谢谢,调试正在发生的事情非常有用。在我的例子中,由于安装的SDK与我告诉gradle用于编译的SDK版本不匹配,错误是未能找到目标android-18。啊,我在我的项目中使用的是SDK 19。很好,你修好了
install:
- true
language: android
jdk: oraclejdk7
android:
components:
- build-tools-19.0.1
install:
- true
script: TERM=dumb ./gradlew assembleDebug