Gitlab CI/CD:根据pom.xml文件中的分支名称更改/设置项目版本

snz8szmq  于 2023-03-28  发布在  Git
关注(0)|答案(1)|浏览(185)

我开始使用gitlab CI/CD,但之前使用的是Jenkins。
在Jenkins中,我们有一些管道/groovy脚本,可以自动检测和更改项目。pom.xml文件中的版本取决于分支名称,所以如果例如,我推到了名为project/task-1的分支,pom.xml包含

<version>dev-SNAPSHOT</version>

然后dev-SNAPSHOT自动更改为task-1-SNAPSHOT。
对于release分支也是一样,如果我们推到release/0.0.1,那么在每次构建过程中,project.version会随着tag version的增加而改变,所以如果是构建号4,那么最终的project.version是0.0.1.4等。
现在在Gitlab CI/CD中,我们必须在每次构建之前手动递增project.version。我在互联网上搜索了一下,不幸的是没有找到任何关于在Gitlab CI中自动化这个过程的东西。
所以我想问,有没有可能用Gitlab做这样的事情?
如果是这样,有人能给予个例子吗?

aij0ehis

aij0ehis1#

要在版本中包含分支名称,请执行以下操作:
<version>值中使用变量:

<version>${branch}-SNAPSHOT</version>

然后在ci脚本中,使用参数运行maven:

./mvnw -Dbranch=${CI_COMMIT_BRANCH} clean install/package/deploy/etc

您可能需要使用不同的predefined CI variables,具体取决于是否推送了标记或分支(或者是否是合并请求事件等)。
您可以在pom.xml的properties部分中放置一个合理的默认值

<properties>
    <branch>local</branch>
</properties>

如果在生成时未提供值,则将使用此选项。

相关问题