【发布时间】:2020-12-13 10:14:10
【问题描述】:
有没有办法只执行一次阶段,只在第一次执行管道时
例如,如果我有这个阶段
- 构建
- tag_version
- 测试
- 部署
我想执行 N 个管道,但下次不执行 'tag_version',第一次执行即可
【问题讨论】:
标签: continuous-integration gitlab gitlab-ci
有没有办法只执行一次阶段,只在第一次执行管道时
例如,如果我有这个阶段
我想执行 N 个管道,但下次不执行 'tag_version',第一次执行即可
【问题讨论】:
标签: continuous-integration gitlab gitlab-ci
您可以使用rules: changes,也可以与when: manual 结合使用,以便仅在更改特定文件(例如,Dockerfile)时执行标记。
【讨论】:
我解决了使用以下规则,捕获推送事件并与我想要标记的标记匹配。这样我的舞台就执行了一次
.mycondition: &mycondition
rules:
- if: '$CI_COMMIT_TAG =~ /^release-v\d+$/ && $CI_PIPELINE_SOURCE == "push"'
when: always
【讨论】: