我开始使用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做这样的事情?
如果是这样,有人能给予个例子吗?
1条答案
按热度按时间aij0ehis1#
要在版本中包含分支名称,请执行以下操作:
在
<version>
值中使用变量:然后在ci脚本中,使用参数运行maven:
您可能需要使用不同的predefined CI variables,具体取决于是否推送了标记或分支(或者是否是合并请求事件等)。
您可以在pom.xml的properties部分中放置一个合理的默认值
如果在生成时未提供值,则将使用此选项。