欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2024/4/20 78 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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

总结

以上是生活随笔为你收集整理的gogs可以自动化部署吗_Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。