前言
项目中,偶尔会需要用到工作日和休假相关的数据信息。而这个数据是根据国家发布的信息来确定的,每年都不一样。
故想写个脚本,生成来年的节假日信息。
然而,想要长期执行,需要有个稳定的服务来维持。
服务器成本较高,本地不稳定。
于是想到了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,手动触发执行。
下面是脚本的执行情况:
最后
快去玩耍吧,你值得拥有。