首先貼地址,開源項目:https://github.com/NetEaseGame/git-webhook,DEMO 地址:http://webhook.hust.cc/python
我我的是在線這邊的測試開發,主要工做是開發一些工具,輔助測試和開發,規範流程等等,這些內網的工具,通常不存在什麼併發,性能瓶頸,上線部署其實很是簡單,在須要更新上線的時候,提交最新代碼到 release 分支,而後 ssh 登錄服務器,去執行一個 shell 腳本,拉取最新代碼,restart 一下便可,其實並非很複雜,而後仍是存在一些問題:mysql
一些沒有 ssh 權限的同窗更新代碼以後,都會找你來幫忙重啓一下;git
週末節假日,加班的同窗跟你打電話:服務掛了須要重啓怎麼辦?github
每次 push 都要去 restart 一下,其實挺煩躁的;web
一次 git push 的代碼,須要更新到不少臺服務器,你就更加煩躁了;sql
因此我作了這樣一個小工具,利用 git 的 webhook 來簡化部署工做。shell
Git WebHook 是一個使用 Python Flask + SQLAchemy + Celery + Redis + React 開發的用於迅速搭建並使用 WebHook 進行自動化部署和運維繫統,支持:Github / GitLab / Gogs / GitOsc。數據庫
技術棧簡單,部署容易;服務器
代碼簡潔易懂,二次開發毫無壓力;併發
支持 Github / GitLab / Gogs / GitOsc;
使用 SSH 方式,支持多服務配置;
pip install git-webhook
備註:項目中某一個依賴庫須要安裝 python-dev。
gitwebhook config
命令執行以後,會在對應用戶目錄(~)生成新的配置文件,而後對應修改配置文件內容。主要須要配置三點:
DATABASE_URI
: 數據庫地址,理論上可使用任何關係數據庫;推薦使用 sqlite 和 mysql (通過測試);
CELERY REDIS
: Redis URI 配置,主要用於 Celery 後臺任務;
GITHUB
: GitHub 登錄配置,能夠到 OAuth applications 自行申請,登錄 Callback 地址爲: your_domain/github/callback
.
gitwebhook createdb
# 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