gogs可以自动化部署吗_Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc...

一、背景

我个人是在线这边的测试开发,主要工作是开发一些工具,辅助测试和开发,规范流程等等,这些内网的工具,一般不存在什么并发,性能瓶颈,上线部署其实非常简单,在需要更新上线的时候,提交最新代码到 release 分支,然后 ssh 登陆服务器,去执行一个 shell 脚本,拉取最新代码,restart 一下即可,其实并不是很复杂,然后还是存在一些问题:

一些没有 ssh 权限的同学更新代码之后,都会找你来帮忙重启一下;

周末节假日,加班的同学跟你打电话:服务挂了需要重启怎么办?

每次 push 都要去 restart 一下,其实挺烦躁的;

一次 git push 的代码,需要更新到很多台服务器,你就更加烦躁了;

所以我做了这样一个小工具,利用 git 的 webhook 来简化部署工作。

二、git-webhook

Git WebHook 是一个使用 Python Flask + SQLAchemy + Celery + Redis + React 开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持:Github / GitLab / Gogs / GitOsc。

技术栈简单,部署容易;

代码简洁易懂,二次开发毫无压力;

支持 Github / GitLab / Gogs / GitOsc;

使用 SSH 方式,支持多服务配置;

三、如何安装?

1. 安装应用

pip install git-webhook

备注:项目中某一个依赖库需要安装 python-dev。

2. 创建配置

gitwebhook config

命令执行之后,会在对应用户目录(~)生成新的配置文件,然后对应修改配置文件内容。主要需要配置三点:

DATABASE_URI: 数据库地址,理论上可以使用任何关系数据库;推荐使用 sqlite 和 mysql (经过测试);

CELERY REDIS: Redis URI 配置,主要用于 Celery 后台任务;

GITHUB: GitHub 登陆配置,可以到 OAuth applications 自行申请,登陆 Callback 地址为: your_domain/github/callback.

3. 初始化数据库结构

gitwebhook createdb

4. 运行应用

# 1. run python webserver

gitwebhook runserver

# 2. run celery async task

gitwebhook celery

运行之后,打开 http://127.0.0.1:18340 (一巴扇死你)即可访问。使用 GitHub 账号登陆。

在工具中添加 WebHook 项目,获得 WebHook URL,并填写到 Github / GitLab / OscGit 的 WebHook 配置中。

四、截图

MIT @hustcc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值