travis.ci 上的 Android 构建变体

Posted

技术标签:

【中文标题】travis.ci 上的 Android 构建变体【英文标题】:Android build variants on travis.ci 【发布时间】:2014-08-25 19:36:28 【问题描述】:

我目前有一个使用 gradle 并与具有不同 productFlavors 和 buildTypes 的 travis.ci 集成的 android 项目。然后在 travis.ci 上执行“connectedCheck”任务时,它会尝试打包所有构建变体(所有风格和类型的组合)。其中一些失败,因为发布版本需要密码输入,我目前无法自动化。有没有办法告诉 travis.ci 只构建和测试 Android 项目的某个构建变体?

【问题讨论】:

我想这是可能的。您可能只需要为您想要构建的变体指定任务 - 而不是所有变体。 travis 是如何调用构建过程的? 运行gradle tasks,您将看到与每种风味/类型组合相关的任务。所以在你的 travis 构建中只运行这些特定的任务 谢谢,运行 connectedAndroidTestt 任务而不是 connectedCheck 似乎可以解决问题。 另外,我必须在 .travis.yml 的安装部分设置 assemble 任务: 安装:- TERM=dumb ./gradlew -s assemble 【参考方案1】:

所以我是这样工作的: 运行connectedAndroidTest<productFlavor><buildType> 任务而不是connectedCheck。 还要在 .travis.yml 的 install 部分设置 assemble 任务:

install: - TERM=dumb ./gradlew -s assemble<productFlavor><buildType>

【讨论】:

【参考方案2】:

假设您只想运行产品风格Trial和构建类型Debug

不要运行./gradlew assemble connectedCheck,这与您正在执行的操作类似,而是运行以下代码:

./gradlew assembleTrialDebug connectedCheckTrialDebug

【讨论】:

以上是关于travis.ci 上的 Android 构建变体的主要内容,如果未能解决你的问题,请参考以下文章

Travis CI 跳过测试(Gradle Android 项目)

Travis CI AVD上的Android Instrumentation测试失败,但在本地模拟器上工作

Android Travis CI 错误:所选目标的 --abi armeabi-v7a 无效

Travis CI 构建失败,因为没有输出

Travis CI + Go:为不同的操作系统创建特定的构建流程

Travis.ci 配置和执行 npm 脚本