更新README
This commit is contained in:
parent
4c0e13047f
commit
e551d7a18a
74
README.md
74
README.md
@ -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 尝试自动部署
|
||||
⚠️**注意**,请仔细阅读下一节`要求`,然后尝试自动部署。
|
||||
在需要部署的项目内,新建commit,commit 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`
|
Loading…
x
Reference in New Issue
Block a user