jerryni / blog

:dog: :dog: :dog:
https://github.com/jerryni/blog/issues
11 stars 4 forks source link

用Github Actions 运行nodejs定时任务 #36

Open jerryni opened 3 years ago

jerryni commented 3 years ago

随便找个github仓库,进入respository的Actions tab里,点击nodejs模板;再配合源码一起看,基本就没啥问题了

其他一些注意点:

  1. 配置settings/secrets: 这个是以key/value形式配的,可以在.yml配置文件内通过${{ secrets.MAIL163_TOKEN }}语法使用;
  2. .yml配置文件里的env参数可以用来传参,在js文件内可以通过process.env.XX拿到;
  3. .yml配置文件里的on参数是指什么时候执行ci, 其中push是在代码推上去之后执行,shedule是可以按照年月日周期定时运行,用的是cron语法,跟gitlab上的一样;

cron语法简单解释

*  *  *  *  *  *
┬  ┬  ┬  ┬  ┬  ┬
│  │  │  │  │  |
│  │  │  │  │  └ 星期几,取值:0 - 7,其中 0 和 7 都表示是周日
│  │  │  │  └─── 月份,取值:1 - 12
│  │  │  └────── 日期,取值:1 - 31
│  │  └───────── 时,取值:0 - 23
│  └──────────── 分,取值:0 - 59
└─────────────── 秒,取值:0 - 59(可选)

https://crontab.guru/every-5-minutes

// 每天10点定时任务;这里要注意,因为我们是东8区的原因,这里要-8,10 - 8 = 2;
0 0 2 * * *

// 每10分钟执行一次;
*/2 * * * *

其他比较“复杂”的参考

https://www.ruanyifeng.com/blog/2019/12/github_actions.html https://blog.csdn.net/qq_40748336/article/details/110749375