0

我在 Bamboo 中使用 gradle-release-plugin,带有选项 useAutomaticVersion=true,添加一个 git 标签,然后自动增加版本号。gradle-release-plugin 的默认行为是增加补丁版本(2.0.3 -> 2.0.4)。我正在尝试实现以下用例:

  1. 如果当前分支是主分支,则增加次要版本(2.0.3 -> 2.1.0)
  2. 如果当前分支是除 master 之外的任何其他分支,则增加补丁版本 (2.0.3 -> 2.0.4)

我想知道 gradle-release-plugin 是否可以提供这样的功能?

4

1 回答 1

1

插件本身并没有真正提供,但您可以使用自己的版本匹配器获得它。

String getCurrentBranch(Project p) {
    OutputStream out = new ByteArrayOutputStream()
    p.exec {
        commandLine = ['git', 'rev-parse', '--abbrev-ref', 'HEAD']
        workingDir = projectToCheck.rootProject.projectDir
        standardOutput = out
    }
    return out.toString().trim()
}
release {
    versionPatterns = [
            /(\d+)\.(\d+)\.(\d+)/: { Matcher m, Project p ->
                if (getCurrentBranch(p) == 'master') {
                    m.replaceAll("${m[0][1]}.${(m[0][2] as int) + 1}.0")
                } else {
                    m.replaceAll("${m[0][1]}.${m[0][2]}.${(m[0][3] as int) + 1}")
                }
            }
    ]
}

没有测试代码,但这就是我要走的路。

于 2020-01-03T10:46:39.113 回答