2013-01-17 19 views
13

Cercando di iniziare con Travis CI per i miei progetti Android. Per prima cosa ho impostato un progetto fittizio con Android Bootstrap e aggiunto un file yml dal progetto otto di Square, modificato per avere il nome utente e il nome repo.Travis CI per Android

mia build non riesce con l'errore "/home/travis/build.sh: line 94: android: command not found, anche quando square's project builds fine.

L'errore sembra indicare che il percorso non è impostato correttamente, a dispetto di avere queste righe nel mio .travis.yml

  • export ANDROID_HOME = ~/build/f2prateek/FoodBot/android-sdk-linux
  • export PATH = $ {PATH}: $ {ANDROID_HOME}/strumenti: $ {ANDROID_HOME}/piattaforma-tools

C'è qualcos'altro che ho bisogno di impostare per ottenere questo giusto?

risposta

16

Aggiornamento 2014/05: Travis CI ora ha il supporto ufficiale per Android.

http://docs.travis-ci.com/user/languages/android/

Le soluzioni alternative che seguono non sono necessari più, a meno che non si desidera utilizzare su un non Android VM.


Il problema è molto probabilmente dovuto al fatto che Travis CI è passato a macchine virtuali a 64 bit. È necessario installare ia32-libs per Android per l'esecuzione in un ambiente a 64 bit. Questo può attualmente essere raggiunto con:

sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch 

ho scritto un post su come ottenere Android costruisce in esecuzione su Travis, che copre questo così come altri dettagli: http://rkistner.github.com/android/2013/02/05/android-builds-on-travis-ci/

macchine virtuali

Travis potrebbe supportare Android-specifici in il futuro, che semplificherà la configurazione. Segui la conversazione su issue #56 per gli aggiornamenti su questo problema e le discussioni sulla VM specifica per Android.

+0

Sì, lo seguo da settimane. Grazie per la soluzione alternativa: – f2prateek

+0

Ho ricevuto il seguente errore: I seguenti pacchetti hanno dipendenze non soddisfatte: ia32-libs-multiarch: i386: dipende: libgphoto2-2: i386 ma non verrà installato Depends: libsane: i386 ma non verrà installato E: Impossibile correggere i problemi, hai tenuto i pacchetti danneggiati. – emmby

+0

Si ottiene un errore del genere quando si tenta di installare solo 'ia32-libs-multiarch' - è necessario utilizzare l'intera riga come sopra. – Ralf

2

Questa risposta copre fino al test automatico Travis. Vedi lo Medium article per la versione completa: test e implementazione automatici.


Travis CI (@ API 26+)

A quanto pare da API 24 impostazione l'emulatore è un dolore su Travis è un dolore [1][2][3][4].

Sean Barbeau, che sta scavando attraverso questo per molto più tempo di quello che ho, ha pretty much considered it impossible da emulare.

Ma v'è un lavoro e più semplice alternativa a API 26+, che esegue le prove con gradlew invece del adb emulator. È seems to have some limitations, ma dovrebbe funzionare. Crediti a PocketHub.

sudo: required 

language: android 
jdk: oraclejdk8 

before_cache: 
    - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock 
    - rm -rf $HOME/.gradle/caches/*/plugin-resolution/ 

cache: 
    directories: 
    - $HOME/.gradle/caches/ 
    - $HOME/.gradle/wrapper/ 
    - $HOME/.android/build-cache 

env: 
global: 
- ANDROID_API=26 
- ANDROID_BUILD_TOOLS=26.0.2 

android: 
    components: 
    - tools 
    - tools # Running this twice get's the latest build tools (https://github.com/codepath/android_guides/wiki/Setting-up-Travis-CI) 
    - platform-tools 
    - android-${ANDROID_API} 
    - build-tools-${ANDROID_BUILD_TOOLS} 
    - extra 

script: 
- ./gradlew clean test build 

variabili d'ambiente che potrebbe essere necessario adattarsi ai vostri progetti:

Alcune informazioni dovrebbero essere disponibili sia nella build.gradle o AndroidStudio -> Settings -> Android SDK -> SDK Tools

(se si sta costruendo un nuovo progetto con un AndroidStudio aggiornato dovresti semplicemente scegliere le ultime versioni nei seguenti link)

ANDROID_API: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

ANDROID_BUILD_TOOLS: https://developer.android.com/studio/releases/build-tools.html

Example .travis.yml setup (con autodeploy alle versioni GitHub).