跳到正文
cron.surf

让 GitHub Actions 工作流每天早上 9 点运行

GitHub Actions 中“每天早上 9 点”的表达式是 0 9 * * *。下面是可直接粘贴的配置、接下来的运行时间和需要注意的地方。 GitHub Actions 在 on.schedule 里使用 POSIX cron,在默认分支上运行;除非条目设置了时区,否则按 UTC。

0 9 * * *在工具中打开

“在09:00”

工作流文件

.github/workflows/daily-at-9am.yml
name: daily-at-9am
on:
  schedule:
    - cron: '0 9 * * *'
      timezone: 'UTC'
  workflow_dispatch:
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - run: echo "running daily-at-9am"

GitHub Actions 的坑

最短 5 分钟GitHub 文档写明定时工作流最短每 5 分钟一次,不要指望更短。
可能延迟或被丢弃高峰期定时运行会延迟,尤其是整点,部分运行可能被丢弃。时间敏感就别用第 0 分钟。
不设 timezone 就是 UTC在 schedule 条目里加 timezone: 和 IANA 时区名。不加就按 UTC。
只在默认分支运行,还会被停用定时任务用默认分支的最新提交运行。公开仓库 60 天没有活动会被自动停用。

常见问题

GitHub Actions 中“每天早上 9 点”的 cron 表达式是什么?

0 9 * * *。含义:在09:00

GitHub Actions 的定时任务按哪个时区运行?

默认 UTC。在 schedule 条目里 cron: 旁边加 timezone:,写 IANA 时区名,比如 Asia/Shanghai。

GitHub Actions 能每分钟运行吗?

不能。文档写的最短间隔是 5 分钟。更短的间隔请从外部用 workflow_dispatch 或 repository_dispatch 触发。

GitHub Actions 支持 @hourly、@daily 吗?

不支持。GitHub 不支持 @yearly、@monthly、@weekly、@daily、@hourly 和 @reboot,请写五个字段。