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

如何基于GitLab分支名称动态显示变量下拉选项?

实现分支动态控制GitLab CI变量选项及默认值

可以实现,通过GitLab CI的分支匹配规则结合变量重定义就能搞定,具体配置如下:

# 全局基础变量定义(可选,也可直接在job内定义)
variables:
  HOST_NAME:
    description: Select a host name to deploy
    value: web-server-dev-01
    options:
      - web-server-dev-01
      - web-server-dev-02
      - web-server-dev-03
      - web-server-prod-01
      - web-server-prod-02
      - web-server-prod-03

# 示例部署任务,核心逻辑在rules里的分支匹配与变量重定义
deploy_job:
  script:
    - echo "Deploying to $HOST_NAME"
  rules:
    # 匹配dev分支时,重定义HOST_NAME的默认值和可选列表
    - if: '$CI_COMMIT_BRANCH == "dev"'
      variables:
        HOST_NAME:
          description: Select a host name to deploy
          value: web-server-dev-01
          options:
            - web-server-dev-01
            - web-server-dev-02
            - web-server-dev-03
    # 匹配master分支时,重定义HOST_NAME的默认值和可选列表
    - if: '$CI_COMMIT_BRANCH == "master"'
      variables:
        HOST_NAME:
          description: Select a host name to deploy
          value: web-server-prod-01
          options:
            - web-server-prod-01
            - web-server-prod-02
            - web-server-prod-03
    # 其他分支可按需添加规则,或设置when: never禁止触发
    - when: never

关键说明

  1. 利用rules里的if条件精准匹配分支,在对应分支规则下重定义HOST_NAME的value和options,直接覆盖全局配置
  2. dev分支触发时,变量下拉仅显示3个dev结尾的服务器,默认值固定为web-server-dev-01
  3. master分支触发时,变量下拉仅显示3个prod结尾的服务器,默认值固定为web-server-prod-01
  4. 若有其他分支需求,可继续添加对应if规则,或通过when: never限制非目标分支触发该任务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:22:06