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

1、背景

首先貼地址,開源項目https://github.com/NetEaseGame/git-webhookDEMO 地址http://webhook.hust.cc/python

我我的是在線這邊的測試開發,主要工做是開發一些工具,輔助測試和開發,規範流程等等,這些內網的工具,通常不存在什麼併發,性能瓶頸,上線部署其實很是簡單,在須要更新上線的時候,提交最新代碼到 release 分支,而後 ssh 登錄服務器,去執行一個 shell 腳本,拉取最新代碼,restart 一下便可,其實並非很複雜,而後仍是存在一些問題:mysql

  1. 一些沒有 ssh 權限的同窗更新代碼以後,都會找你來幫忙重啓一下;git

  2. 週末節假日,加班的同窗跟你打電話:服務掛了須要重啓怎麼辦?github

  3. 每次 push 都要去 restart 一下,其實挺煩躁的;web

  4. 一次 git push 的代碼,須要更新到不少臺服務器,你就更加煩躁了;sql

因此我作了這樣一個小工具,利用 git 的 webhook 來簡化部署工做。shell

2、git-webhook

Git WebHook 是一個使用 Python Flask + SQLAchemy + Celery + Redis + React 開發的用於迅速搭建並使用 WebHook 進行自動化部署和運維繫統,支持:Github / GitLab / Gogs / GitOsc。數據庫

  • 技術棧簡單,部署容易;服務器

  • 代碼簡潔易懂,二次開發毫無壓力;併發

  • 支持 Github / GitLab / Gogs / GitOsc;

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

3、如何安裝?

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 配置中。

4、截圖

圖片描述

MIT @hustcc

相關文章
相關標籤/搜索