You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitLab CI/CD预生产流水线中添加交互式提示?

GitLab CI/CD 流水线运行中交互提问的支持及替代方案

GitLab 是否支持该功能?

GitLab CI/CD原生支持在流水线运行过程中暂停并等待用户输入的功能,通过**交互式作业(Interactive Jobs)**实现。这类作业允许流水线执行到特定步骤时暂停,触发者可在GitLab的作业日志界面中回复问题,输入完成后流水线会继续执行后续步骤。

除手动传入变量外的替代方案

1. 交互式作业

在.gitlab-ci.yml中为目标作业配置interactive: true,并在脚本中通过read等命令发起提问。用户可在GitLab的作业页面输入回复,作业会等待输入完成后继续执行。示例配置如下:

stages:
  - pre-deploy-check
  - deploy-to-preprod

pre-deploy-confirmation:
  stage: pre-deploy-check
  script:
    - echo "请确认是否要部署到预生产环境?输入y确认,其他值取消:"
    - read DEPLOY_CONFIRM
    - if [ "$DEPLOY_CONFIRM" != "y" ]; then echo "部署取消"; exit 1; fi
    - echo "请输入本次部署的变更描述:"
    - read CHANGE_DESC
    - echo "已记录变更描述:$CHANGE_DESC"
  rules:
    - if: $CI_COMMIT_BRANCH == 'main'
  interactive: true
  tags:
    - shell-runner # 需使用支持交互式的Shell类型Runner

注意:交互式作业依赖支持交互的Runner(如Shell Runner),Docker Runner默认不支持此类操作。

2. 流水线审批机制

若仅需完成确认类操作(无需收集具体文本信息),可使用GitLab的流水线审批功能。在项目设置中配置审批规则,当main分支触发流水线时,需指定人员审批通过后才能进入后续部署阶段。这种方式适合简单的权限校验和部署确认场景。

3. 自定义外部交互流程

通过GitLab API结合企业微信机器人、Slack机器人或自定义Web应用实现交互。当流水线进入指定阶段时,调用API向触发者发送提问消息,用户在外部工具中回复后,再通过API触发流水线继续执行。该方案灵活性高,但需要额外的开发成本。

内容的提问来源于stack exchange,提问作者Ananth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:06:01