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

GitLab CI如何配置推送时运行单任务、定时触发matrix并行任务

解决方案

核心思路是利用 GitLab CI 预定义变量$CI_PIPELINE_SOURCE判断流水线触发源,拆分不同触发场景的任务配置:

  • 推送触发时$CI_PIPELINE_SOURCE值为push
  • 定时计划触发时$CI_PIPELINE_SOURCE值为schedule

最终配置示例

# 公共逻辑模板,避免重复代码
.common_job_template:
  script:
    - echo $ARCHIVE $IMAGE

# 代码推送触发的单任务
push_job:
  extends: .common_job_template
  image: image1
  variables:
    ARCHIVE: "archive-a.tgz"
  rules:
    - if: $CI_PIPELINE_SOURCE == "push"

# 定时触发的全量并行任务
schedule_job:
  extends: .common_job_template
  image: $IMAGE
  parallel:
    matrix:
      - ARCHIVE: ["archive-a.tgz", "archive-b.tgz" ]
        IMAGE: ["image1", "image2"]
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"

配置说明

  • 公共逻辑通过隐藏模板.common_job_template统一维护,后续修改脚本只需改一处即可生效
  • push_job仅在代码推送时触发,固定使用archive-a.tgz + image1参数组合,只会生成1个运行任务
  • schedule_job仅在定时计划触发时生效,保留原有的全量矩阵配置,会生成4个并行运行的任务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:15:04