Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc

一、背景

首先贴地址,开源项目https://github.com/NetEaseGame/git-webhookDEMO 地址http://webhook.hust.cc/

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

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

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

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

  4. 一次 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


开源项目
优秀的开源项目推荐。

前端攻城军

933 声望
88 粉丝
0 条评论
推荐阅读
🎉 echarts-for-react v3 发布
🎉 echarts v5 发布之后,echarts-for-react 上已经有很多很多的 issue 请求支持最新版本,所以,过年期间升级了 v3 版本,支持了最新的 echarts v5。

hustcc阅读 997

封面图
一个开源vue网站博客,nuxt开源网站,前后端分离项目
开媛笔记,基于nuxt ssr首屏服务器端渲染 。用于分享、记录、交流和学习,希望可以帮助到小伙伴们。同时网站在不断更新,创造属于猿(媛)的世界 -$Bao Yalong ..Let's Go! [链接]

jigsaw16阅读 8.4k评论 3

Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 2k评论 2

封面图
Git 入门与实践
Git 入门与实践推荐:猴子都能懂的 GIT 入门Git --everything-is-loca 官方文档Git 教程-廖雪峰Git 的使用方式有很多。图形化 —— 小乌龟(Tortoise Git )、命令行—— git bash、IDE 集成等 ......目录1. 基础配置...

RainBow1阅读 2.2k

NB的Github项目,看到最后一个我惊呆了!
最近看到不少好玩的、实用的 Github 项目,就来给大家推荐一把。中国制霸生成器最近在朋友圈非常火的一个小网站,可以在线标记 居住、短居、游玩、出差、路过 标记后可生成图片进行社区分享,标记过的信息会记录...

艾小仙5阅读 1.6k评论 1

git patch常用方法
针对指定的commit range生成patch,默认对每一个commit分别单独生成patch文件。patch文件按照commit的先后顺序从1开始编号。patch文件会生成到当前目录下。

黑暗森林1阅读 13.1k评论 1

前端精准测试实践
随着前端技术发展,已经转变为数据绑定为主流的框架方式,与后端服务一样,前端代码实现也会涉及相互依赖,引用这些场景,那么应该如何准确的评估前端代码改动的影响范围?依赖开发评估?依靠经验评估?或者直接...

京东云开发者3阅读 370

封面图

前端攻城军

933 声望
88 粉丝
宣传栏