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

标签 android github gradle continuous-integration semaphore-ci

https://semaphoreci.com

我有一个正在开发的 Android 项目,我正在尝试使用 semaphoreci 针对我在 GitHub 上的 master 分支对每个 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.

最佳答案

我知道这是一个老话题,但我最近自己设置了这个,并想我会在这里发布解决方案,以防将来有人偶然发现这篇文章并需要帮助。

解决方案是安装 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

关于使用 Semaphoreci 进行 Android 自动化集成测试。如何正确设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46121821/

相关文章:

android - 创建具有可点击图像的 Gridview,Android

java - 尝试使用动态创建的图像按钮时出现空指针异常

java - Android - SugarORM - 从表中选择对象

git - 如何检测裸 git 存储库中分支之间的冲突

java - 为 THE 问题应用过滤器

android - 如何使用 adb 命令测量 Micromax C4 中每个核心 CPU 利用率/负载(以 % 为单位)?

git - 如何在我的 NetBeans IDE 中设置 github 存储库?

android - 从 JCenter 迁移到 MavenCentral 后无法使用 Android 库。错误 : Could not find :unspecified:

android - 错误 aapt : Attribute "font" already defined with incompatible format. 此处定义的原始属性

android - 如何更改 Gradle 中的 libs 目录?