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

GitLab CI是否有GitHub Actions中workflow_dispatch的等效功能?

GitLab CI 中类似 GitHub Actions workflow_dispatch 的等效机制

GitLab CI 提供了完全等效的手动参数化触发能力,核心是手动触发流水线(Manual Pipeline)配合自定义变量,可以实现分支选择、文本输入等类似Jenkins参数化构建的需求,具体实现方式如下:

1. 核心逻辑

GitLab默认支持手动触发流水线,通过在.gitlab-ci.yml中定义带类型的自定义变量,触发时会自动生成对应的输入控件(下拉框/文本框),和GitHub Actions的workflow_dispatch参数功能完全匹配。

2. 配置分支选择参数(对应GitHub分支下拉)

如果需要选择仓库中已有的分支作为参数,可定义branch类型变量,触发时会自动加载所有可用分支作为选项:

variables:
  SOURCE_BRANCH:
    description: "选择要合并到develop的源分支"
    type: branch
    default: main # 设置默认选中的分支

3. 配置文本输入参数(对应Jenkins Text Parameter)

如果需要手动输入分支名(或其他自定义文本),可定义string类型变量:

variables:
  SOURCE_BRANCH:
    description: "输入要合并到develop的源分支名称"
    type: string

4. 完整示例:分支合并流水线

以下是实现「将指定分支合并到develop」的完整配置,仅允许手动触发:

stages:
  - merge

merge_to_develop:
  stage: merge
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web' # 仅限制通过Web界面手动触发
      when: manual # 需要手动确认后执行
  script:
    - |
      git config user.email "mohamed.ennahdi@gmail.com"
      git config user.name "Mohamed Ennahdi El Idrissi"
      git checkout develop
      git pull origin develop
      git merge --no-ff $SOURCE_BRANCH
      git push origin develop
  variables:
    SOURCE_BRANCH:
      description: "选择或输入要合并到develop的源分支"
      type: branch # 若要改为文本输入,替换为 type: string
  tags:
    - ubuntu-latest # 指定使用的Runner标签

5. 触发方式

在GitLab仓库的「CI/CD」→「流水线」页面,点击右上角的运行流水线按钮,会弹出参数配置界面,选择/输入分支参数后,点击「运行流水线」即可触发。

内容的提问来源于stack exchange,提问作者Mohamed Ennahdi El Idrissi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 17:23:14