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}/платформенные инструменты
Есть ли что-то еще, что мне нужно настроить, чтобы это правильно?
Ответы
Ответ 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).