如何通过手动单击或提交消息触发作业

问题描述 投票:1回答:1

我们有一份工作(部署到生产),我们通常在检查分段上的构建后手动点击。但是,我们偶尔会遇到一个我们意外部署并希望尽快解决问题的问题。在这种情况下,我们在本地运行测试(更快)并将[urgent-fix]放在我们的提交消息中以停止在CI中运行的测试(直接跳到Docker映像构建和分段部署)。

我们想做的是,如果我们把[urgent-fix]自动触发生产部署(通常是when: manual步骤)。我们能以某种方式达到目的吗?

gitlab gitlab-ci
1个回答
3
投票

听起来你可以使用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]/
© www.soinside.com 2019 - 2024. All rights reserved.