Question

Je suis en train d'élaborer un Android bibliothèque (RateMyApp, vous pouvez trouver sur GitHub) mais je ne vois pas comment je dois le programme d'installation Travis CI pour le construire à chaque fois que je pousse un nouveau code.

L' .travis.yml le fichier que j'utilise est le suivant:

language: java
script:
    - gradle bundleRelease

mais il semble être ignorée parce qu' gradle bundleRelease n'est jamais invoquée.Au lieu de cela j'obtiens le résultat suivant qui suggère que moi gradle assemble est appelé à la place.

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.

J'ai lu l' page liée dans la documentation mais malheureusement, ce n'était pas trop utile pour moi.

Était-ce utile?

La solution

Voici la mienne yaml fichier qui est la construction de apk.Mais il devrait fonctionner également pour la bibliothèque.

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

Mais être prudent, car ce script ne pousse pas construit artefact n'importe où

Autres conseils

J'utilise un SDK installer script dans le .travis.yml pour Poignée.

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 a mis en œuvre Android comme un citoyen de première classe - http://blog.travis-ci.com/2014-05-07-android-build-support-now-in-beta/

Pour répondre à pourquoi vous voyez gradle assemble au lieu de gradle bundleRelease:

gradle assemble est invoquée par défaut dans le install: stade de Travis (voir Travis docs pour la description des étapes, et cette remarque).

Puisque vous n'avez pas un install: la section de votre script pour remplacer la valeur par défaut, Travis est en invoquant gradle assemble.

Vous pouvez éviter cela en ajoutant les lignes suivantes, qui dit Travis, de ne rien faire lors de l'installation étape:

install:
    - true

J'ai eu un problème similaire, avec Travis exécution gradle assemble quand j'ai voulu l'exécuter gradlew assembleDebug.

Donc, pour moi, un travail complet de script (à compter du 1er Mai 2014 avec Android comme un citoyen de première classe) est:

language: android
jdk: oraclejdk7

android:
  components:
    - build-tools-19.0.1

install:
    - true

script: TERM=dumb ./gradlew assembleDebug

Grâce à Austyn Mahoney pour clarifier cela pour moi ici.

MODIFIER

Le 8 Mai 2014, Travis CI a supprimé le défaut install: stade de la beta Android, tel que discuté ici.Par conséquent, vous devriez maintenant être en mesure de retirer le install: étape à partir de votre script, et Travis ne devriez pas exécuter gradle assemble.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top