如何在.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
相关产品推荐
相关产品推荐

