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

news/2025/1/31 16:46:45 标签: github

你好,我是悦创。

博客网站: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.niftyadmin.cn/n/5838764.html

相关文章

MySQL基本架构SQL语句在数据库框架中的执行流程数据库的三范式

MySQL基本架构图: MySQL主要分为Server层和存储引擎层 Server层: 连接器:连接客户端,获取权限,管理连接 查询缓存(可选):在执行查询语句之前会先到查询缓存中查看是否执行过这条语…

Linux-Robust-Futex学习笔记

robust futex 简介 概述: 为了保证futex的robustness,添加了一种能够用于处理进程异常终止时锁状态的机制,就是当拥有锁的线程异常终止时,该线程能够将锁进行释放 基本原理: 每个线程都有一个私有的robust list&…

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程

智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN k8s搭建教程 首先下载代码文件 git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git cd POT-ZHIYUN编译镜像 代码相关文件在github https://github.com/x…

使用DeepSeek API生成Markdown文件

DeepSeek技术应用与代码实现 一、DeepSeek简介 DeepSeek是一款强大的人工智能写作助手,能够根据用户输入的提示(Prompt)快速生成高质量的文章。它不仅支持批量生成文章,还能通过智能分段、Markdown转HTML等功能优化内容。此外&…

程序代码篇---Python随机数

文章目录 前言Python随机数函数random.random()random.randint(a,b)random.randrange(start,stop[,step])random.uniform(a,b)random.choice(sequence)random.sample(population,k)random.shuffle(x[,random])random.seed(aNone) 总结 前言 以上就是今天要讲的内容&#xff0c…

gesp(C++六级)(7)洛谷:P10376:[GESP202403 六级] 游戏

gesp(C六级)(7)洛谷:P10376:[GESP202403 六级] 游戏 题目描述 你有四个正整数 n , a , b , c n,a,b,c n,a,b,c,并准备用它们玩一个简单的小游戏。 在一轮游戏操作中,你可以选择将 n n n 减去 a a a&am…

进阶数据结构——高精度运算

目录 前言一、高精度运算的定义与背景二、高精度运算的实现方式三、高精度运算的算法实现四、高精度运算的应用场景五、代码模版(c)六、经典例题1.[高精度加法](https://www.lanqiao.cn/problems/1516/learning/?page1&first_category_id1&name…

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…