GitHub Actions实现定时任务,免费运行
GitHub Actions是GitHub的持续集成和持续部署(CI/CD)平台,允许开发者自动化他们的软件开发工作流程。这项功能在2018年推出,迅速成为GitHub上最流行的开发工具之一。
GitHub Actions使开发者能够创建自定义的软件开发工作流程。这些工作流程可以由各种事件触发,最常见的包括代码推送到仓库、发起拉取请求(Pull Request)、定时计划任务以及手动触发。通过编写工作流配置文件,使用YAML语法定义在特定事件发生时自动执行的任务,开发者可以构建一个完整的自动化流程来构建、测试、打包、发布和部署他们的项目。
之前的每天定时发邮件给自己一直在电脑上跑,有时候断电或者电脑重启就需要重新启动项目,当然也可以将其打包成docker容器进行部署到线上,但是没有线上服务器,在自己电脑跑还是docker重启,遇到自己的其他项目,电脑肯定会很卡,所以github action可以是你的线上服务器。
GitHub Actions也支持私有和公有仓库,对公有仓库完全免费。私有仓库则视使用情况可能需付费,不过对于小规模项目和个人开发者来说,免费额度通常已经足够。
另外,GitHub Actions的安全性也是其核心关注点。它支持机密(Secrets)管理,以安全方式处理敏感信息,比如API密钥和访问令牌。这样的设计使开发人员可以在不泄漏敏感信息的情况下构建和部署应用程序,这是github上设置Secrets变量的步骤。
总之,GitHub Actions提供了一个强大而灵活的平台,使软件开发的测试和部署过程可以完全自动化,大大提高开发效率和产品质量。随着开发实践的不断改进和社区的活跃参与,它成为了现代软件开发工具箱中不可或缺的一部分,合理去利用github action为自己的项目提供一些定时任务。
那么,怎么去实现这个github action呢?
点击action-->new workflow
可以选择你的脚本,例如python,node,我的项目都是node脚本,就选择node脚本
新建之后有模板,修改对应的node版本
这个是我的项目代码示例,使用node版本18.x,
安装依赖,执行项目根目录下的app.js文件
- run: npm install
- run: node app.js
workflow_dispatch是允许手动触发,- cron: '00 0 * * *'
这个是定时,
Cron 语法是:* * * * *
这五个星号分别代表:
- 分钟 (0-59)
- 小时 (0-23)
- 天 (1-31)
- 月 (1-12)
- 周 (0-7,这个0和7都表示周日)
这里使用的是国际时间,北京时间是快8个小时,所以需要提前,我这里设置'00 0 * * *'
实际上就是北京时间早上八点,然后定时有时候没有准时执行,基本上都是慢几分钟,如果你的项目是做一些签到,发邮件,这个不影响,如果是定时打卡之类就不适合了,可以试试一些云函数,这个就是有一定的成本了,所以选择自己适合的方案即可。
on:
workflow_dispatch:
schedule:
- cron: '00 0 * * *'
转载自:https://juejin.cn/post/7371319684841897995