Подтвердить что ты не робот

Travis CI для Android

Попытка начать работу с Travis CI для моих Android-проектов. Сначала я создал фиктивный проект с Android Bootstrap и добавил файл yml из проекта square otto - изменен, чтобы иметь имя пользователя и репо.

Моя сборка завершилась с ошибкой /home/travis/build.sh: строка 94: android: команда не найдена, даже если построит квадратный проект.

Ошибка, кажется, указывает на то, что путь не установлен правильно, несмотря на то, что эти строки в моем .travis.yml

  • экспорт ANDROID_HOME = ~/builds/f2prateek/FoodBot/android-sdk-linux
  • export PATH = ${PATH}: ${ANDROID_HOME}/tools: ${ANDROID_HOME}/платформенные инструменты

Есть ли что-то еще, что мне нужно настроить, чтобы это правильно?

4b9b3361

Ответ 1

Обновление 2014/05: Travis CI теперь имеет официальную поддержку Android.

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

Обходные пути ниже не требуются, если вы не хотите использовать их на не-Android.


Проблема, скорее всего, связана с тем, что Travis CI переключился на 64-битные виртуальные машины. Вам нужно установить ia32-libs для Android для работы в 64-разрядной среде. Это может быть достигнуто с помощью:

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

Я написал сообщение в блоге о том, как работает Android на Travis, который охватывает эту и другие детали: http://rkistner.github.com/android/2013/02/05/android-builds-on-travis-ci/

В будущем Travis может поддерживать виртуальные машины, зависящие от Android, что упростит настройку. Следуйте за беседой вопрос № 56 для получения обновлений по этой проблеме и обсуждений на виртуальной машине Android.

Ответ 2

Этот ответ распространяется на автоматическое тестирование Travis. См. Средняя статья для полной версии: автоматическое тестирование и развертывание.


Travis CI (@API 26 +)

По-видимому, из API 24, создающего эмулятор, боль в Travis - это боль [1] [2] [3] [4].

Шон Барбо, который копал это намного больше времени, чем у меня, в значительной степени считается невозможным подражать.

Но для API 26 + существует рабочая и более простая альтернатива, которая запускает тесты с gradlew вместо adb emulator. Он похоже, имеет некоторые ограничения, но он должен работать. Кредиты на 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 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

Переменные среды, которые вам, возможно, придется адаптировать к вашим проектным:

Некоторая информация должна быть доступна либо в build.gradle, либо AndroidStudio -> Settings -> Android SDK -> SDK Tools

(если вы создаете новый проект с обновленным AndroidStudio, вы должны просто выбрать последние версии в следующих ссылках)

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

Пример .travis.yml setup (с помощью autodeploy для выпусков GitHub).