我试图仅在提交消息具有条件短语时触发管道。我知道这个问题已经被问过很多次了,也有一些有用的答案。我也检查了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]
时,然后运行阶段
你可以修改这个正则表达式
这个方法在我的作品中使用。