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

And*_*ies 3 gitlab gitlab-ci

我们有一个工作(部署到生产),我们通常在检查构建阶段后手动单击它。但是,偶尔我们会遇到意外部署的问题,并希望尽快修复。在这些情况下,我们在本地运行测试(更快)并[urgent-fix]输入我们的提交消息以停止在 CI 中运行的测试(直接跳到 Docker 镜像构建和暂存部署)。

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

Rek*_*vni 5

听起来您可以使用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]/
Run Code Online (Sandbox Code Playgroud)