当前位置: 首页 > article >正文

GitHub Actions定时任务配置完全指南:从Cron语法到实战示例

你好,我是悦创。

博客网站:https://blog.bornforthis.cn/

本教程将详细讲解如何在GitHub Actions中配置定时任务(Scheduled Tasks),帮助你掌握 Cron 表达式的编写规则和实际应用场景。

一、定时任务基础配置

1.1 核心语法结构

on:
  schedule:
    - cron: "分 时 日 月 周"

1.2 参数解析

组件取值范围说明
0-59分钟
0-23小时(UTC时间)
1-31月份中的日期
1-12 或 JAN-DEC月份
0-6 或 SUN-SAT星期(0=周日)

二、Cron表达式详解

2.1 特殊字符说明

符号示例作用
** * * * *任意值
,0,30 * * * *多个值
-0-5 * * * *范围值
/*/15 * * * *间隔值

2.2 常用配置模板

on:
  schedule:
    # 每5分钟(GitHub最小间隔)
    - cron: "*/5 * * * *"
    
    # 每日UTC时间0点
    - cron: "0 0 * * *"
    
    # 每周一北京时间上午8点
    - cron: "0 0 * * 1"
      timezone: Asia/Shanghai
    
    # 每月1号正午执行
    - cron: "0 12 1 * *"

三、高级配置技巧

3.1 时区设置

- cron: "0 8 * * *"
  timezone: Asia/Shanghai  # 支持IANA时区数据库格式

3.2 分支过滤

on:
  schedule:
    - cron: "0 0 * * *"
  branches:  # 限定触发的分支
    - main
    - release/*

3.3 多任务配置

on:
  schedule:
    - cron: "0 9 * * 1-5"   # 工作日早9点
    - cron: "0 18 * * 1-5"  # 工作日晚6点
    - cron: "0 12 * * 0"    # 周日中午12点

四、注意事项

  1. 执行延迟:GitHub Actions的定时任务可能有1-10分钟的延迟
  2. 频率限制
    • 公共仓库:每月2000分钟免费额度
    • 私有仓库:每月500分钟免费额度
  3. 日志查看:执行记录可在仓库的 Actions 标签页查看
  4. 表达式验证:推荐使用 crontab.guru 调试表达式

五、实战应用场景

5.1 自动化测试

name: Daily Test
on:
  schedule:
    - cron: "0 0 * * *"
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - run: npm test

5.2 数据备份

name: Weekly Backup
on:
  schedule:
    - cron: "0 3 * * 6"  # 每周六凌晨3点
jobs:
  backup:
    runs-on: ubuntu-latest
    steps:
      - name: Backup database
        run: ./scripts/backup.sh

5.3 定时通知

name: Morning Reminder
on:
  schedule:
    - cron: "0 9 * * 1-5"  # 工作日早9点
jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions-slack@v3
        with:
          payload: |
            {
              "text": "每日站会时间到!"
            }

SEO优化提示:本文包含高频搜索关键词「GitHub Actions定时任务」「Cron配置指南」「自动化工作流」,建议在相关技术社区和博客平台发布时保留标题结构。


http://www.kler.cn/a/524951.html

相关文章:

  • 机器人抓取与操作概述(深蓝)——1
  • 51单片机开发:串口通信
  • 独立成分分析 (ICA):用于信号分离或降维
  • WebSocket 详解:全双工通信的实现与应用
  • python学opencv|读取图像(四十九)使用cv2.bitwise()系列函数实现图像按位运算
  • Python实现U盘数据自动拷贝
  • 基于Go语言的三甲医院人机与智能体协同环境系统(上.文章部分)
  • JVM01_概述、跨平台原理、分类、三大商业虚拟机
  • 未来无线技术的发展方向
  • Python 切片(Slicing):列表、元组与字符串的高效操作
  • Python爬虫获取item_fee-获得淘宝商品快递费用接口
  • 通过Ngrok实现内网穿透助力远程开发
  • 25【数组的理解】
  • Vue 3 中的 watch:监视数据的变化
  • lambda 表达式:Python中的极简艺术
  • 微服务入门(go)
  • Ceph:关于Ceph 中 RADOS 块设备快照克隆管理的一些笔记整理(12)
  • 基于单片机的车载传感器数据处理系统
  • matlab提取滚动轴承故障特征
  • 2025数学建模美赛|赛题翻译|D题
  • 【每日一A】2015NOIP真题 (二分+贪心) python
  • 第24篇 基于ARM A9处理器用汇编语言实现中断<六>
  • sqlzoo答案5-SUM and COUNT
  • MATLAB中lettersPattern函数用法
  • python学opencv|读取图像(五十)使用addWeighted()函数实现图像加权叠加效果
  • 【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南