我们有一份工作(部署到生产),我们通常在检查分段上的构建后手动点击。但是,我们偶尔会遇到一个我们意外部署并希望尽快解决问题的问题。在这种情况下,我们在本地运行测试(更快)并将[urgent-fix]
放在我们的提交消息中以停止在CI中运行的测试(直接跳到Docker映像构建和分段部署)。
我们想做的是,如果我们把[urgent-fix]
自动触发生产部署(通常是when: manual
步骤)。我们能以某种方式达到目的吗?
听起来你可以使用only:variables语法和$CI_COMMIT_MESSAGE
预定义变量的组合。
一个粗略的想法(未经测试):
.deploy_production: &deploy_production
stage: deploy production
script:
- echo "I'm deploy production here"
tags:
- some special tag
deploy::manual:
<< *deploy_production
when: manual
allow_failure: false
deploy:urgent_fix:
<< *deploy_production
only:
variables:
- $CI_COMMIT_MESSAGE =~/[urgent-fix]/