github actions 定时任务需将 .yml 工作流文件置于 .github/workflows/ 下,使用 utc 时区的 cron 表达式(如北京时间0点对应 '0 16 *'),配合 checkout、setup-python、依赖安装及脚本执行步骤,并通过 secrets 管理敏感信息。

GitHub Actions 设置定时任务自动执行脚本,核心是用 schedule 事件配合 cron 表达式,无需服务器,完全免费,适合个人爬虫、数据采集、日报生成等日常自动化场景。
创建正确的工作流文件路径
必须把配置文件放在仓库根目录下的固定路径:
-
.github/workflows/xxx.yml(注意是.github,开头带点,全小写) -
workflows是复数形式,不能写成workflow - 文件后缀必须是
.yml或.yaml,推荐用.yml
写对 cron 表达式(关键:UTC 时间)
GitHub Actions 的定时使用的是 UTC 时区,不是北京时间。北京时间 = UTC + 8 小时,换算时要减去 8 小时:
- 想每天早上 7 点(北京)运行 → UTC 是前一天 23 点 →
cron: '0 23 * * *' - 想每天晚上 12 点(北京)运行 → UTC 是 16:00 →
cron: '0 16 * * *' - 可用 crontab.guru 辅助生成表达式
- 最小间隔是每 5 分钟一次(
'*/5 * * * *'),不能更密
基础工作流配置示例(Python 脚本)
以下是一个能直接跑通的 .github/workflows/daily-run.yml 示例:
name: 每日自动执行
on:
schedule:
- cron: '0 16 * * *' # 每天 UTC 16:00(即北京时间凌晨 0:00)
workflow_dispatch: # 同时支持手动触发,方便调试
<p>jobs:
run-script:
runs-on: ubuntu-latest
steps:</p>
name: 拉取代码 uses: actions/checkout@v4
name: 设置 Python 环境 uses: actions/setup-python@v5 with: python-version: '3.11'
name: 安装依赖 run: | pip install --upgrade pip pip install -r requirements.txt
-
name: 运行脚本 run: python main.py
- 确保仓库里有
requirements.txt(含所有 pip 依赖) - 脚本名(如
main.py)需与你实际文件名一致 - 敏感信息(如 API Key)应通过
secrets配置,不要写死在代码里
- 确保仓库里有
验证和调试技巧
刚配置完别急着等明天,立刻验证是否生效:
- 提交配置后,进入仓库 → “Actions” 标签页,能看到新工作流被识别
- 点击工作流名称 → 右上角 “Run workflow” 按钮可立即手动触发一次
- 每次运行都有完整日志,失败时看红色报错行,重点查依赖安装、路径、时区、权限
- 首次运行建议加一句
run: date,确认当前时间是否符合预期(UTC)
不复杂但容易忽略细节,配好一次就能长期稳定运行。











