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

如何在Gitlab中按名称触发指定的Pipeline或Job

实现按名称触发指定GitLab CI Job的方案

1. 调整CI配置规则

核心实现逻辑是通过自定义CI变量控制Job的运行条件,仅当传入匹配的变量值时才运行目标Job,同时跳过所有默认流水线任务,完全不需要挪用environments相关能力。
修改后的配置示例如下:

# 手动触发的依赖更新Job
update-dependencies:
  rules:
    # 仅当触发源为触发器、且传入的TRIGGER_JOB变量值匹配当前Job名称时才运行
    - if: $CI_PIPELINE_SOURCE == "trigger" && $TRIGGER_JOB == "update-dependencies"
      when: always
  script:
    - update-dependencies.sh

# 示例:常规流水线Job,所有默认要运行的Job都需要添加下面第一条规则
build:
  rules:
    # 只要存在TRIGGER_JOB变量就跳过当前Job,避免触发手动任务时跑默认流水线
    - if: $TRIGGER_JOB
      when: never
    # 原有常规触发规则保留,比如主干分支提交时运行
    - if: $CI_COMMIT_BRANCH == "main"
      when: always
  script:
    - build.sh

如果有多个同类手动Job,只要参照update-dependencies的规则模板配置,替换对应TRIGGER_JOB的匹配值即可。

2. 触发方式

2.1 curl API 触发

使用如下命令即可触发指定Job,替换对应占位参数即可:

curl --request POST \
  --form "token=你的项目触发器令牌" \
  --form "ref=要运行的分支名,比如main" \
  --form "variables[TRIGGER_JOB]=update-dependencies" \
  "https://你的GitLab域名/api/v4/projects/你的项目ID/trigger/pipeline"

2.2 页面点击触发

进入项目左侧菜单「CI/CD」->「流水线」,点击右上角「运行流水线」,选择对应分支,新增变量TRIGGER_JOB,值填写要触发的Job名称,点击「运行流水线」即可。

注意事项

  • 所有常规流水线Job都必须添加if: $TRIGGER_JOB when: never的规则,避免触发手动任务时运行默认任务
  • 触发器令牌可以在项目「设置」->「CI/CD」->「流水线触发器」中创建获取

内容的提问来源于stack exchange,提问作者ST-DDT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:06:04