当提交消息匹配正则表达式时,Gitlab CI运行



我试图仅在提交消息具有条件短语时触发管道。我知道这个问题已经被问过很多次了,也有一些有用的答案。我也检查了gitlab ci文档,它也提供了正确的方法来做到这一点。

无论所需的短语是否在提交消息中,都将构建阶段。这里是.yml代码。

before_script:
- export LC_ALL=en_US.UTF-8
- export LANG=en_US.UTF-8
- export BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S')
- echo $branch

stages:
- build

build_job:
stage: build
only:
variables:
- $branch
- $CI_COMMIT_MESSAGE =~ /[ci build]/
script:
- bundle fastlane
- fastlane build

有谁知道它有什么问题吗?

考虑下一个解决方案:

before_script:
- export LC_ALL=en_US.UTF-8
- export LANG=en_US.UTF-8
- export BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S')
stages:
- build
build_job:
stage: build
rules: 
- if: $CI_COMMIT_MESSAGE =~ /[ci build]/
script:
- bundle fastlane
- fastlane build

也许您可以删除变量$branch并使用only: refs这里有一些例子

before_script:
- export LC_ALL=en_US.UTF-8
- export LANG=en_US.UTF-8
- export BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S')

stages:
- build

build_job:
stage: build
script:
- bundle fastlane
- fastlane build
only:
variables:
- $CI_COMMIT_MESSAGE =~ /[ci build]/
refs:
- /^develop*.*$/

你可以在refs中使用regex,在我的例子中意思是:当分支名称包含develop并且提交消息包含[ci build]时,然后运行阶段

你可以修改这个正则表达式

这个方法在我的作品中使用。

最新更新