使用Semaphoreci进行Android自动化集成测试。如何正确设置?

时间:2017-09-08 17:33:44

标签: android github gradle continuous-integration semaphore-ci

https://semaphoreci.com

我有一个我正在研究的Android项目我正在尝试使用semaphoreci在GitHub上的主分支上为每个PR设置自动集成测试。

我的问题是,如果没有Android SDK,我该如何运行gradle任务?我是否必须推送我的Android SDK(真的不想)?或者我可以指向服务器(可能是Google)上的已编译Android SDK吗?

到目前为止,我已经设置了semaphoreci来运行这些命令:

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.

1 个答案:

答案 0 :(得分:0)

我知道这是一个古老的话题,但是我本人最近进行了设置,并认为我会在此处发布解决方案,以防将来有人偶然发现此帖子并需要帮助。

解决方案是安装Android SDK命令行工具。将以下内容放在信号量脚本的commands:部分中。以下所有内容可能并非严格必要,但在构建自己的React-Native Android应用时对我有用。确保您获取此处列出的最新版本的命令行工具集:https://developer.android.com/studio#command-tools。在Semaphore上,您需要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