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

GitLab CI/CD:如何让job3仅执行定时调度并排除常规流水线

GitLab CI 配置修正方案

问题根源

  1. job3仍出现在常规流水线:你仅给job3配置了「流水线源为schedule时运行」的规则,但未明确设置「非schedule场景下不执行」,默认情况下未匹配规则的job会被标记为skipped并显示在流水线中,而非完全排除。
  2. 定时调度运行所有任务:job1、job2未添加任何规则限制,它们会在所有类型的流水线(包括定时调度)中默认执行。

实现需求的正确配置

要实现「job3仅在定时调度运行,常规流水线排除job3且定时调度仅跑job3」,需同时给三个job添加规则限制:

image: 
# 填写你的镜像地址

stages:
  - job1
  - job2
  - job3
       
job1:
  dependencies: []
  stage: job1      
  rules:
    - if: $CI_PIPELINE_SOURCE != "schedule"  # 仅在非定时调度的流水线运行
  script:
    # 填写job1的脚本内容

job2:
  dependencies: []
  stage: job2     
  rules:
    - if: $CI_PIPELINE_SOURCE != "schedule"  # 仅在非定时调度的流水线运行
  script:
    # 填写job2的脚本内容

job3:
  dependencies: []
  stage: job3    
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"  # 仅在定时调度时运行
      when: always
    - when: never  # 其他场景直接排除该job
  script:
    # 填写job3的脚本内容

配置说明

  • job1、job2的规则:通过$CI_PIPELINE_SOURCE != "schedule"限定仅在手动推送、MR等常规流水线中执行,定时调度时会被直接排除。
  • job3的规则:第一条规则匹配定时调度场景并强制运行;第二条规则作为兜底,确保所有非定时场景下job3不会出现在流水线中(而非标记为skipped)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:45:59