引言
语雀webhook
触发构建的流程如下:
而当时腾讯云函数对个人使用还是在一定条件下免费的,本着能白嫖就白嫖的心态就用它做中转服务调用了。结果从上个月开始,腾讯云函数涨价了,而且费用也不便宜,我看了下账单,一个月差不多要快 10 块钱了,这我可忍不了。 所以就打算自己搭建一个node
服务,自己调用Github Actions
的API
触发构建。流程如下:
部署流程
搭建 Node 服务
搭建记录请看Midway 项目搭建
开通腾讯云容器镜像服务(可选)
目前腾讯云容器镜像服务对个人还是免费的,我就先用这个,不免费了再说。也可以直接推送到Docker Hub
实操过程中发现:由于 Github Actions 使用的机器都是美国的,所以选择在香港/海外新建会快很多很多!
具体开通流程和快速入门请直接移步腾讯云容器镜像服务个人版快速入门
配置 Github Actions
编写 workflows 流程
在 Node 项目的根目录新建.github/workflows/docker-build-deploy.yml
文件
Github Secrets
上面 yml 文件中的 secrets.XXX
是一些秘钥,Github
为了保护你的秘钥,提供了使用变量的办法,我们可以在仓库的 Settings -> Secrets
中定义变量,然后按照 ${{ secrets.XXX }}
的格式,即可拿到变量值。
连接云服务器
secrets.SERVER_SSH_PRIV_KEY
是用来访问远程服务器的私钥,具体:
- 在本地服务器生成密钥对,一个公钥,一个私钥
- 在远程服务器上添加步骤 1 的公钥 (将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中)
- 在 Github 仓库设置
secrets.SERVER_SSH_PRIV_KEY
为步骤 1 的私钥 (Settings > Secrets)
secrets.SERVER_IP
是远程服务器地址
deploy.sh
配置 DockerFile
Dockerfile
在 Node 项目的根目录新建Dockerfile
文件
上述相关的 npm 命令需要根据自己实际命令修改。
.dockerignore
在 Node 项目的根目录新建.dockerignore
文件,可以将.gitignore
中的配置复制过去
Done!
接下来就可以推送代码到 master 分支,就会自动部署项目了!