Tra*_*ash 11 continuous-integration android qa github
为了改进我们的QA工作流程,我们希望为Github上的每个pull-request自动构建一个APK文件,以便我们可以在合并分支之前对其进行测试.我们已经想出了如何构建文件,但我们现在想知道如何将它集成到我们的工作流程中.
似乎大多数可用的Beta程序(例如Crashlytics Beta,Google Play)主要关注在发布前不久创建一个测试版,但不允许并行托管多个APK.
以下是我们理想工作流程的示例:
我们特别不想在pull-request合并之后测试APK,而是测试之前在我们的开发分支中弹出更少的bug.
实际上 Crashlytics 允许有多个版本的 APK。每个版本都可以有自己的版本字符串,当然还有发行说明,以帮助 QA 找到正确的 APK。
问题中的第 3 点可以这样描述:CI 配置为将构建上传到 Crashlytics。可以通过gradle任务来实现:
gradle assembleRelease crashlyticsUploadDistributionRelease
Run Code Online (Sandbox Code Playgroud)
pullrequest
对于这种情况,使用特殊的构建类型 ( ) 确实很有用。您可以通过分发组、有关构建的通知和发行说明来指定特殊分发规则。
build.gradle:
//example function for change log
def getLastGitCommitMessage() {
try {
"git log -1 --pretty=%B".execute().text.trim()
} catch (e) {
'Undefined message.'
}
}
android {
buildTypes {
...
pullrequest {
//invitation
ext.betaDistributionGroupAliases = "QA, devs"
// notification
ext.betaDistributionNotifications = true
// last commit message as release notes
ext.betaDistributionReleaseNotes = getLastGitCommitMessage()
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,构建和上传命令将如下所示:
gradle assemblePullrequest crashlyticsUploadDistributionPullrequest
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
317 次 |
最近记录: |