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

如何在.gitlab-ci.yml中定义运行时需手动输入的变量

在GitLab CI/CD中实现运行时手动输入变量的方法

GitLab CI/CD支持两种常见方式让用户在流水线运行过程中手动输入变量,具体实现如下:

1. 触发流水线时手动填写变量

在.gitlab-ci.yml中定义无默认值的变量,用户通过GitLab网页手动触发流水线时,就能在触发界面输入变量值。

示例配置:

variables:
  DEPLOY_ENV:
    value: ""
    description: "请输入目标部署环境(如prod、staging)"

deploy_to_env:
  script:
    - echo "开始部署到 $DEPLOY_ENV 环境"
    - # 这里添加部署脚本

触发流水线时,GitLab会显示变量输入框,用户填写后,流水线就会使用该值执行后续作业。如果只想让网页触发的流水线支持手动输入,可加规则限制:

deploy_to_env:
  script:
    - echo "部署到 $DEPLOY_ENV"
  rules:
    - if: $CI_PIPELINE_SOURCE == "web"

2. 流水线运行中暂停等待手动输入

如果需要在流水线执行到某个阶段时暂停,等待用户输入变量后再继续,可以结合manual作业实现:

示例配置:

stages:
  - prepare
  - deploy

input_release_version:
  stage: prepare
  script:
    - echo "确认发布版本:$RELEASE_VERSION"
  variables:
    RELEASE_VERSION:
      value: ""
      description: "请输入要发布的应用版本号(如v1.2.3)"
  when: manual # 作业会暂停,需手动触发并输入变量
  allow_failure: false # 必须完成该作业才能进入下一阶段

release_to_prod:
  stage: deploy
  script:
    - echo "发布版本 $RELEASE_VERSION 到生产环境"
    - # 添加发布脚本
  needs: [input_release_version] # 依赖前面的手动输入作业

运行时,流水线会在input_release_version阶段暂停,用户点击"运行"按钮后会弹出变量输入框,填写完成后作业继续执行,后续的release_to_prod作业就能使用该变量。

注意事项

  • 敏感变量可设置为mask: true,避免在日志中泄露内容:
    variables:
      DB_PASSWORD:
        value: ""
        description: "请输入数据库密码"
        mask: true
    
  • 若变量需要复用,也可在项目的「Settings > CI/CD > Variables」中预先配置,触发时选择是否覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 13:27:21