Pregunta

Estoy desarrollando una biblioteca de Android (Calificar mi aplicación, que puedes encontrar en GitHub) pero no veo cómo debo configurar Travis CI para compilarlo cada vez que envío un código nuevo.

El .travis.yml El archivo que estoy usando es el siguiente:

language: java
script:
    - gradle bundleRelease

pero parece ser ignorado porque gradle bundleRelease nunca se invoca.En lugar de eso, obtengo el siguiente resultado que me sugiere que gradle assemble en su lugar se invoca.

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.

yo leo el página vinculada en la documentación pero desafortunadamente no me fue de mucha ayuda.

¿Fue útil?

Solución

Aquí esta el mio yaml archivo que está construyendo apk.Pero debería funcionar también para la biblioteca.

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

Pero tenga cuidado ya que este script no envía artefactos construidos a ninguna parte.

Otros consejos

Yo uso un sdk installer script en el .travis.yml para hilt .

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

Editar: Travis-CI ha implementado Android como ciudadano de primera clase - http://blog.travis-ci.com/2014-05-07-android-build-support-now-in-beta/

Para abordar por qué estás viendo gradle assemble en lugar de gradle bundleRelease:

gradle assemble se invoca de forma predeterminada en el install: etapa de Travis (ver documentos de travis para la descripción de las etapas, y esta nota).

Como no tienes un install: sección de su secuencia de comandos para anular el valor predeterminado, Travis está invocando gradle assemble.

Puedes evitar esto agregando las siguientes líneas, que le indican a Travis que no haga nada durante la etapa de instalación:

install:
    - true

Yo tenía un problema similar, con Travis ejecutando gradle assemble cuando quería que se ejecutara gradlew assembleDebug.

Entonces, para mí, un guión de trabajo completo (a partir del 1 de mayo de 2014 con Android como ciudadano de primera) es:

language: android
jdk: oraclejdk7

android:
  components:
    - build-tools-19.0.1

install:
    - true

script: TERM=dumb ./gradlew assembleDebug

Gracias a Austyn Mahoney por aclararme esto. aquí.

EDITAR

A partir del 8 de mayo de 2014, Travis CI eliminó el valor predeterminado install: etapa para la versión beta de Android, como se discutió aquí.Por lo tanto, ahora debería poder eliminar el install: etapa de su script, y Travis no debería ejecutar gradle assemble.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top