更新README

This commit is contained in:
LollipopKit 2022-06-10 12:34:33 +08:00
parent 4c0e13047f
commit e551d7a18a

View File

@ -1,19 +1,54 @@
## Gogs Webhook Deploy
通过Gogs内置的Webhook实现自动部署项目。
## 要求
- 在仓库的webhook页面正确配置
- 部署机器上项目文件夹名与Git项目名一致
- 部署过程需要有相应权限不可sudo
- 部署时需要在commit message中包含`{D}`字符(可以通过`config.json`参数自定义字符)
- 可能需要手动切换到对应的git分支
## 🔨 步骤
### 1 安装
在需要实现自动部署的机器上安装本项目。
#### 1.1 下载
```shell
git clone https://git.lolli.tech/lollipopkit/gogs-webhook
```
#### 1.2 开机自启
`~/.config/systemd/user/`目录下创建一个文件,命名为`gogs-webhook-deploy.service`,内容如下:
```shell
[Unit]
Description=Gogs Webhook Deploy Service
After=network.target
## 配置
`config.json`
[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart={ABSOLUTE_PATH_TO_GOGS_WEBHOOK}
WorkingDirectory={ABSOLUTE_PATH_TO_GOGS_WEBHOOK}
[Install]
WantedBy=multi-user.target
```
请将`{ABSOLUTE_PATH_TO_GOGS_WEBHOOK}`替换为下载的本项目的绝对路径。
然后执行:
```shell
systemctl --user enable --now gogs-webhook-deploy.service
```
如果需要在机器启动后(用户未登录时)自动启动,请执行:
```shell
sudo loginctl enable-linger {USER}
```
`{USER}`为你在系统中的用户名
### 2 配置
#### 2.1 Git项目
在Gogs中创建一个Git项目并为其设置Webhook。
进入你的项目`https://git.lolli.tech/USER/PROJECT/settings/hooks/gogs/new`,填写相关信息。
#### 2.2 自动部署的项目
在项目里添加自动部署脚本(默认是`deploy.py`[示例](https://git.lolli.tech/lollipopkit/gogs-webhook/src/master/example/deploy.py))。
#### 2.3 Gogs-Webhook-Deploy配置
在clone本项目的目录内添加`config.json`
```json
[
{
// repo名称git用户名/项目名,不可为空
// 名称git用户名/项目名(需要实现自动部署的项目),不可为空
"repo": "lollipopkit/example",
// 项目的父文件夹路径,默认“~”
"path": "/home/lolli/pro",
@ -24,10 +59,27 @@
}
]
```
更改本配置后,不需要重启服务,会自动加载最新配置。
## 运行
### 3 尝试自动部署
⚠️**注意**,请仔细阅读下一节`要求`,然后尝试自动部署。
在需要部署的项目内新建commitcommit message内需要包含刚在`config.json`内配置的`signal`(默认`{D}`然后push。
如果未能成功请查看clone的本项目内的`.log`文件夹内的日志。
## 🔖 要求
- 在仓库的webhook页面正确配置
- 部署机器上项目文件夹名与Git项目名一致
- 部署过程需要有相应权限不可sudo除非以root权限运行本项目
- 部署时需要在commit message中包含`{D}`字符(可以通过`config.json`参数自定义字符)
- 如果要部署非默认分支需要手动切换到对应的git分支
## 🔍 CLI
```sh
Usage of gogs-webhook:
-a string
Address to listen on (default ":3001")
```
```
## 📝 License
`LGPL LollipopKit 2022`