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

GitLab CI设置特定变量时如何跳过其余job仅执行指定job?

解决方案

通过GitLab CI的全局default.rules配置即可实现需求,一次性配置后所有新增普通job无需额外加规则,彻底避免漏加锚点的问题。

配置逻辑

default 关键字下的配置会被所有job默认继承,如果某job单独配置了rules,则会覆盖默认的规则配置:

  1. 给所有job设置默认规则:当$HOURLY为TRUE时不运行,其余场景正常运行
  2. 仅给hourly-deploy-job单独配置规则:仅当$HOURLY为TRUE时运行

完整配置代码

stages:          
  - build
  - test
  - deploy

# 全局默认规则,对所有未单独配置rules的job生效
default:
  rules:
    - if: $HOURLY == "TRUE"
      when: never
    - when: always

# 普通job:无需额外配置,自动继承默认规则
build-job:       
  stage: build
  script:
    - echo "Build."

test-job:  
  stage: test   
  script:
    - echo "Test."
    
deploy-job:   
  stage: deploy  
  script:
    - echo "Deploy."

# 定时任务专属job:单独配置rules覆盖默认规则
hourly-deploy-job:   
  stage: deploy
  script:
    - echo "Hourly Deploy."
  rules:
    - if: $HOURLY == "TRUE"

兼容说明

如果你的GitLab版本低于14.10(不支持default.rules语法),可以调整定时任务的触发规则:给Daily Schedule新增一个值为TRUE的$DAILY变量,再把所有普通job的运行条件绑定到push事件或$DAILY变量即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:45:07