让 GitHub Actions 工作流每天零点运行
GitHub Actions 中“每天零点”的表达式是 0 0 * * *。下面是可直接粘贴的配置、接下来的运行时间和需要注意的地方。 GitHub Actions 在 on.schedule 里使用 POSIX cron,在默认分支上运行;除非条目设置了时区,否则按 UTC。
0 0 * * *在工具中打开“在00:00”
工作流文件
.github/workflows/daily-at-midnight.yml
name: daily-at-midnight
on:
schedule:
- cron: '0 0 * * *'
timezone: 'UTC'
workflow_dispatch:
jobs:
run:
runs-on: ubuntu-latest
steps:
- run: echo "running daily-at-midnight"GitHub Actions 的坑
最短 5 分钟GitHub 文档写明定时工作流最短每 5 分钟一次,不要指望更短。
可能延迟或被丢弃高峰期定时运行会延迟,尤其是整点,部分运行可能被丢弃。时间敏感就别用第 0 分钟。
不设 timezone 就是 UTC在 schedule 条目里加 timezone: 和 IANA 时区名。不加就按 UTC。
只在默认分支运行,还会被停用定时任务用默认分支的最新提交运行。公开仓库 60 天没有活动会被自动停用。
常见问题
GitHub Actions 中“每天零点”的 cron 表达式是什么?
0 0 * * *。含义:在00: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,请写五个字段。