配置一个 Github Actions 定时任务

前言

项目中,偶尔会需要用到工作日和休假相关的数据信息。而这个数据是根据国家发布的信息来确定的,每年都不一样。

故想写个脚本,生成来年的节假日信息。

然而,想要长期执行,需要有个稳定的服务来维持。

服务器成本较高,本地不稳定。

于是想到了Github Actions

生成数据

获取国务院文件

传送门

指定搜索日期和相关条件,可以搜索到国务院发布的通知。

按照惯例,一般文件会在10月份以后发布,我们可以设置脚本在10月份以后再去抓取相关文章。

请添加图片描述

分析文件内容

根据文件分析,内容中的关键词有放假*月*日*日

请添加图片描述

编写解析脚本

  • 动态调整时间范围,获取文章列表
  • 抓取文章详情
  • 解析文章详情
  • 生成日期文件

配置定时脚本

yml文件如下:

name: Script

on:
  schedule:
    - cron: '0 12 * * *'

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: 1.18

    - name: 'Gen New Year Calendar'
      run: go run calendar/calendar.go
      
    - name: 'Show Diff'
      run: git add .
    
    - name: 'Push Calendar'
      uses: actions-go/push@7ad7ce209f2a038e7bca929b7a4c92026363f856
      with:
        commit-message: "new calendar"
        remote: origin

创建Actions

项目 -> Actions -> New workflow -> set up a workflow yourself

请添加图片描述

请添加图片描述

编写文件

由于本身只需要定时执行,于是on设置的只有定时

请添加图片描述

拓展提交到git仓库

由于需要生成保存日期文件,那么提交到仓库是比较好的一个选择。

在右侧的Marketplace中找到了actions-go/push组件。

请添加图片描述

保存查看执行

由于设定的是每天12点执行(PS:这里的12点不是东八区的时区),所以想要立马看到效果,可以设置每5分钟执行一次(这是Action的限制,最少5分钟一次),或者设置触发机制为push,手动触发执行。

下面是脚本的执行情况:

请添加图片描述
请添加图片描述

最后

快去玩耍吧,你值得拥有。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值