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

从Jenkins迁移至GitLab CI/CD:如何添加可手动触发的独立按需任务?

最优解决方案:GitLab CI/CD 手动触发按需任务

我经常帮团队处理这类Jenkins到GitLab的迁移,你的需求(保留手动触发的按需任务)其实GitLab CI/CD原生就支持得很好,下面给你几个针对性的方案,你可以根据自己的场景选择:


1. 独立的手动触发流水线(推荐给完全独立的按需任务)

如果这个任务不需要和现有构建/部署流水线绑定,完全是独立的按需操作,最干净的方式是配置一个仅手动触发的流水线,代码提交、标签推送等自动触发事件都不会触发它。

示例.gitlab-ci.yml配置:

# 控制整个流水线的触发条件
workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == "web"  # 允许GitLab网页手动触发
    - if: $CI_PIPELINE_SOURCE == "api"  # 可选:允许通过API调用触发(适合自动化脚本调用)
    - when: never  # 其他所有情况(比如代码提交)都不触发流水线

stages:
  - run-on-demand-task

# 你的按需任务逻辑
on-demand-task:
  stage: run-on-demand-task
  script:
    - echo "开始执行按需任务..."
    - # 替换成你原来Jenkins任务里的命令、脚本逻辑
    - ./your-original-script.sh

使用方式:在GitLab项目的「CI/CD → 流水线」页面,点击右上角的「运行流水线」,确认后就会触发这个任务,和Jenkins里手动点击"立即构建"一模一样。


2. 在现有流水线中添加手动触发任务

如果这个按需任务需要和你的现有构建/部署流水线放在同一个项目里,但只需要手动触发,不需要自动执行,可以给目标任务加上manual关键字和规则限制。

示例配置:

stages:
  - build
  - test
  - deploy
  - on-demand  # 新增一个阶段专门放按需任务

# 你的现有构建、测试、部署任务...
build:
  stage: build
  script:
    - echo "执行构建逻辑"

# 按需手动触发的任务
on-demand-data-cleanup:
  stage: on-demand
  script:
    - echo "执行手动数据清理任务..."
    - ./cleanup-script.sh
  rules:
    - if: $CI_COMMIT_BRANCH == "main"  # 可选:限制只在主分支显示这个任务
    - when: manual  # 标记为手动触发,默认不会自动运行
    - allow_failure: false  # 可选:如果任务必须执行成功,设为false;允许失败则设为true

使用方式:当现有流水线运行时,这个任务会出现在流水线的「待操作」区域,只有你手动点击"播放"按钮才会执行,不会影响流水线的其他自动任务。


3. 进阶:支持用户输入参数

如果你的按需任务需要用户触发时输入自定义参数(比如指定要处理的环境、数据范围),GitLab CI/CD也支持在手动触发时输入变量,非常灵活。

示例配置:

on-demand-task:
  stage: run-on-demand-task
  script:
    - echo "处理用户输入的参数:$TARGET_ENV"
    - ./your-script.sh --env $TARGET_ENV
  variables:
    TARGET_ENV: "staging"  # 设置默认值,用户触发时可以修改
  rules:
    - if: $CI_PIPELINE_SOURCE == "web"
    - when: manual

使用方式:点击「运行流水线」时,会看到TARGET_ENV的输入框,你可以根据需求修改参数,再触发任务。


4. 可选:权限控制

和Jenkins一样,你可以限制哪些用户/团队能触发这个手动任务:

  • 进入项目的「设置 → 成员」
  • 编辑对应角色的权限,确保只有授权用户拥有「触发流水线」的权限

方案选择建议

  • 如果任务完全独立,和现有CI流程无关:选方案1,最清晰,不会干扰其他流水线。
  • 如果任务需要和现有项目流水线共存:选方案2,整合在同一个项目里管理更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:46:11