Автоматизированное тестирование интеграции Android с Semaphoreci. Как правильно настроить?
У меня есть проект Android, над которым я работаю. Я пытаюсь настроить автоматическое интеграционное тестирование для каждого PR с моей основной веткой на GitHub с помощью semaphoreci.
У меня вопрос, как я могу запустить задачи gradle, если нет Android SDK? Нужно ли нажимать на мой Android SDK (правда, не хочу)? Или я могу указать на скомпилированный Android SDK на сервере (возможно, Google)?
До сих пор он настроил семафоры для запуска этих команд:
gradle wrapper // Fails here
./gradlew clean
./gradlew build
Я получаю эту ошибку
FAILURE: Build failed with an exception.
[0K
* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.
0 ответов
Я знаю, что это старая тема, но я недавно настроил ее и решил, что опубликую решение здесь на тот случай, если кто-нибудь наткнется на этот пост в будущем и ему понадобится помощь.
Решением является установка инструментов командной строки Android SDK. Поместите следующее в commands:
раздел вашего сценария семафора. Все это ниже, возможно, не является строго необходимым, но оно работает для меня при создании моего собственного приложения React-Native для Android. Убедитесь, что вы взяли последнюю версию набора инструментов командной строки, указанного здесь: https://developer.android.com/studio. На семафоре вам нужен набор инструментов Linux. В первой строке скрипта устанавливаются некоторые рекомендуемые предварительные условия перед захватом и установкой Android SDK CLI. Затем просто продолжайте работу с остальными командами, чтобы выполнить все необходимое для тестирования / сборки приложения.
- echo y | sudo apt-get install libc6-dev-i386 lib32z1 openjdk-8-
- wget https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip
- unzip sdk-tools-linux-4333796.zip
- export ANDROID_HOME=`pwd`
- yes | tools/bin/sdkmanager --update || exit 0
- yes | tools/bin/sdkmanager "platform-tools" "platforms;android-28" || exit 0
- yes | tools/bin/sdkmanager --licenses || exit 0