gitlab-ci - 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 使用“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"'
推荐阅读
- oracle - 为什么我的表占用更多空间,即使它的行数比其他表少?
- php - 如何修复 Illuminate\Support\Collection 类的对象无法转换为 int?
- swift - swift if case 和可选绑定
- c++ - 为什么为联合或类似联合的类删除默认的默认构造函数?
- python - 向量数据集的蒙特卡罗模拟
- java - Heroku - git push/deployment 期间出错,此代码的相同版本已经构建
- ios - 快速面对“记住我”功能的问题
- python - 如何在 django rest 框架中添加一些自定义代码到 post 方法
- python - Python Audio fftpack:过滤噪声信号并绘制图表?
- jupyter-notebook - 在 Ubuntu 中打开 jupyter Notebook 时出错