首页 > 解决方案 > GitLab CI/CD:检测合并请求何时恢复

问题描述

当在 GitLab CI/CD 上恢复合并请求时,有什么方法可以运行管道?我试图用这两个作业调试环境变量,但它们没有被触发:

stages:
  - test

debug:
  stage: test
  script:
    - printenv
  when: always

debug2:
  stage: test
  script:
    - printenv
  rules:
    # Run only during merge requests
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: always
      allow_failure: false

当部署分支上的合并请求被还原时,我想通过 SSH 回滚使用 PHP Deployer 进行的部署

标签: gitlab-ci

解决方案


如果还原是通过合并请求完成的,我能想出的最佳解决方案是检查合并请求的标题。由于 Gitlab 使用“Revert +”模式命名提交的恢复$CI_COMMIT_MESSAGE,您可以检查是否$CI_MERGE_REQUEST_TITLE包含“Revert”一词:

revert:deploy:
  stage: revert
  script:
    - echo "reverting deployment..."
  rules:
    - if: '$CI_MERGE_REQUEST_TITLE =~ /^Revert/ && $CI_PIPELINE_SOURCE == "merge_request_event"'

推荐阅读