¿Cómo debo configurar Travis-CI para una biblioteca de Android?

Estoy desarrollando una biblioteca de Android ( RateMyApp , que se puede encontrar en GitHub), pero no puedo ver cómo debo configurar Travis CI para construirlo cada vez que empuje nuevo código.

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

 language: java script: - gradle bundleRelease 

Pero parece ser ignorado porque gradle bundleRelease nunca se invoca. En su lugar, obtengo la siguiente salida que me sugiere que gradle assemble se invoca en su lugar.

 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. 

Leí la página enlazada en la documentación, pero por desgracia no me fue de mucha ayuda.

Aquí está mi archivo de yaml que está construyendo apk. Pero debe 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 empuja construido artefacto en cualquier lugar

Utilizo un script de instalación de SDK en .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 

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

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

gradle assemble se invoca por defecto en la install: etapa de Travis (véase Travis docs para la descripción de etapas, y esta nota ).

Dado que no tiene una install: sección de su script para anular el valor predeterminado, Travis invoca gradle assemble .

Puede evitar esto añadiendo las siguientes líneas, lo que le dice a Travis que no haga nada durante la fase de instalación:

 install: - true 

Tuve un problema similar , con Travis ejecutando gradle assemble cuando quería ejecutar gradlew assembleDebug .

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

 language: android jdk: oraclejdk7 android: components: - build-tools-19.0.1 install: - true script: TERM=dumb ./gradlew assembleDebug 

Gracias a Austyn Mahoney por aclarar esto para mí aquí .

EDITAR

A partir del 8 de mayo de 2014, Travis CI ha eliminado la install: predeterminada install: etapa para la versión beta de Android, como se analiza aquí . Por lo tanto, ahora debe ser capaz de eliminar la install: etapa de su script, y Travis no debe ejecutar gradle assemble .

  • Las pruebas de Android fallan en Travis con ShellCommandUnresponsiveException
  • La construcción de Travis CI no funciona con Android Constraint Layout
  • No se puede configurar travis para trabajar en el proyecto android
  • ¿Hay alguna manera de ejecutar un conjunto específico de pruebas en un proyecto de Android Gradle?
  • Dependencias de Gradle con Travis CI en proyecto Android
  • Travis CI - Android Project Build Failing
  • Com.android.builder.testing.ConnectedDevice> hasTests FALLA
  • Cómo corregir el permiso gradlew denegado en travis.yml?
  • Travis CI falló porque no puede aceptar licencia Constrain Layout
  • Comenzando google-services.json a GitHub
  • Almacenamiento en caché del SDK de Android en Travis CI
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.