在我的工作场所,我们使用由多个开发人员共享的月度发布分支。
Gradle 版本是 2.14.1
我们使用Jenkins手动触发代码构建和发布(任务)(有效运行——gradle clean compileJava release)
整个过程大约需要 30-40 分钟,基本上是编译、生成工件、运行 Junit 测试并将工件上传到 Artifactory。
最终到了标记和推送版本号的步骤: preTagCommit,它尝试更新 gradle.properties 并将版本号提升到它并提交和推送。
此时,如果最近 30-40 分钟(由于手动触发构建)分支上没有提交,则发布成功。
在整个过程之间甚至有一个提交的那一刻它失败并出现错误:任务':preTagCommit'的执行失败。
*
error: failed to push some refs to 'xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
*
我尝试了几种技巧并搜索了文档,但还没有找到任何合适的解决方案。
这是我的发布步骤的样子:
***
release {
project.setProperty("gradle.release.useAutomaticVersion", "true");
newVersionCommitMessage = "Re-snapshoted project to version "
preTagCommitMessage = "Preparing version for release "
tagCommitMessage = "Tagging Release "
tagPrefix = "calypso"
requireBranch = ""
// Sometimes the plugin trips over its own feet with modifying the gradle.properties
// then complaining it has changed.
failOnCommitNeeded = false
pushToCurrentBranch = true
}
***
抱歉,如果以前有人问过这个问题,我发现的所有解决方案都是 git 的一般方法,而不是来自使用 Gradle-Release-Plugin 和 git 的人。
任何回应将不胜感激。