跳到正文
CronExplain

GitHub Actions Cron 定时解析器

GitHub Actions 通过 on.schedule 触发器,使用标准五字段 Cron 定时启动工作流。粘贴你的 Cron 字符串,即可查看它的含义以及按 UTC 的运行时间。

含义

GitHub Actions:标准五字段,始终按 UTC 计算,最短 5 分钟一次;GitHub 繁忙时可能延迟。

✓ 有效 · 含义

在05:30, 星期一至星期五

预设

接下来 10 次运行

#UTC 时间你的本地时间
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

其他方言中的同一调度

  • 标准 crontab30 5 * * 1-5
  • Quartz0 30 5 ? * MON-FRI
  • AWS EventBridgecron(30 5 ? * MON-FRI *)EventBridge 规则使用 UTC。
  • Spring0 30 5 * * MON-FRI

可视化生成器

为每个字段选择取值。生成器输出标准的五字段表达式,使用时会自动转换为当前选择的方言。

分钟
小时
日
月
星期
0 9 * * 1-5

在工作流中使用 Cron

在工作流文件中添加定时触发器:on: schedule: - cron: '30 5 * * 1-5'。表达式使用常见的五个字段(分钟、小时、日、月、星期),并且在 YAML 中必须加引号,因为 * 是特殊字符。你可以列出多个 cron 条目,github.event.schedule 会告诉任务是哪一个触发的。

UTC 与 5 分钟限制

调度始终按 UTC 计算,所以 0 9 * * * 是在 UTC 09:00 运行,而不是你的本地时间;可以借助工具中的本地时间列进行换算。GitHub 支持的最短间隔为 5 分钟。不支持 @daily 等宏,请写出完整字段。

延迟与不活跃的仓库

在高负载期间,尤其是整点时,定时运行可能会延迟启动;如果对时间要求不严格,可以选择 17 这样的非整点分钟。在公开仓库中,如果 60 天内没有任何仓库活动,定时工作流会被自动禁用。

测试定时工作流

在 schedule 旁边加上 workflow_dispatch,测试时就可以手动启动工作流。记住,定时任务只在默认分支上运行,所以在功能分支上修改 cron 在合并前不会生效。使用 concurrency 分组可以防止一次较慢的运行与下一次定时运行重叠。

常见问题

GitHub Actions 的 Cron 使用什么时区?
始终是 UTC,且无法修改。编写表达式时请把本地时间换算成 UTC。
工作流可以每分钟运行一次吗?
不可以。最短间隔为 5 分钟,更频繁的调度最多每 5 分钟运行一次。
为什么我的定时工作流没有准时运行?
定时任务需要排队,负载高时可能延迟,并且只在默认分支上运行。不活跃公开仓库中的工作流也会被暂停。
GitHub Actions 能用 @daily 吗?
不能。请使用等价的五个字段,例如 0 0 * * *。