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

GitLab CI如何配置作业仅触发特定定时任务?

解决GitLab CI多定时任务的作业触发问题

要实现不同作业对应特定定时任务触发,核心是给每个定时任务配置唯一自定义变量,然后在作业的rules里通过变量精准匹配,具体步骤如下:

1. 给定时任务添加自定义变量

在GitLab项目的「CI/CD」→「定时任务」页面,分别创建或编辑你的每小时、每日定时任务,在「变量」区域添加专属变量:

  • 每小时定时任务:添加键SCHEDULE_TYPE,值hourly
  • 每日定时任务:添加键SCHEDULE_TYPE,值daily

变量名可自定义,只要能区分不同定时任务即可,注意大小写敏感。

2. 在作业规则中精准匹配变量

通过rules同时判断CI_PIPELINE_SOURCE(确认是定时任务触发)和自定义变量(确认是指定的定时任务),示例配置如下:

每日运行的作业

daily_job:
  script: echo "仅在每日定时任务中运行"
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "daily"'

每小时运行的作业

hourly_job:
  script: echo "仅在每小时定时任务中运行"
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "hourly"'

保留其他触发规则的示例

如果需要保留合并请求等其他触发逻辑,可扩展规则:

mixed_job:
  script: echo "合并请求手动触发,或每日定时任务自动触发"
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: manual
      allow_failure: true
    - if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "daily"'

注意事项

  • 自定义变量需在对应定时任务中单独设置,不要在项目全局变量中添加,避免混淆
  • 规则中的变量判断建议用单引号包裹,防止YAML解析时出现语法问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:01:09