基于 SCF 通过 webhook 完成多项目部署

基于 SCF 通过 webhook 完成多项目部署

GitHub Actions 即将开放 CI/CD 功能。

前段时间写了一个项目部署不过是单项目版,如果项目太多的话需要创建一堆 SCF,管理起来也挺麻烦了,所以花了点时间写了下面的多项目版。因为很多东西设置其实和单项目版是一样的,所以这里对这些东西是不会有太多重复是说明,先了解完单项目版然后在了解这个。

多项目版和单项目版区别在于之前配置我们是写到环境变量里面的,现在我们直接写到代码里面或者放到一个json文件里面,然后通过请求这个文件来拿到这个数据,目前这个的话代码是注释的,需要自己去手动设置。

单项目版

源码下载

配置说明(JSON 是没有注释这个东西的,这里方便了解):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
// 服务器IP
"server_host": "",
// 服务器端口
"server_port": "",
// 服务器用户
"server_username": "",
// 服务器密码
"server_password": "",
// 项目列表
"list": {
// 项目名称
"webhook-php": {
// 执行命令
"command": "cd /home/webhook-test && git pull"
},
"webhook-vue": {
"server_host": "",
"server_port": "",
"server_username": "",
"server_password": "",
"command": "cd /home/webhook-test && git pull && npm install && npm run build"
}
}
}

这里请求的链接和之前的是有变化的,需要在链接上面加上可以识别到项目名称的参数。

1
2
3
4
5
# 之前
https://service-3iqvhw02-1252156936.gz.apigw.tencentcs.com/release/webhook

# 现在
https://service-3iqvhw02-1252156936.gz.apigw.tencentcs.com/release/webhook?name={项目名称}
往上