Git WebHook:用於迅速搭建並使用 WebHook 進行自動化部署 ( Python)
一個使用 Python Flask + SQLAchemy + Celery + Redis + React 開發的用於迅速搭建並使用 WebHook 進行自動化部署和運維繫統,支持: Github / GitLab / GitOsc 。
- 技術棧簡單,部署容易;
- 代碼簡潔易懂,二次開發毫無壓力;
- 支持 Github / GitLab / GitOsc ;
- 使用 SSH 方式,支持多服務配置;
項目地址 | DEMO 示例
一、如何使用 ?
- 下載本項目代碼:
git clone git@github.com:NetEaseGame/git-webhook.git
- 安裝 Python & Javascript 依賴
pip install -r requirements.txtnpm install
- 配置 config.py
拷貝一份 config_example.py 到同目錄 config.py, 然後對應修改配置內容。主要需要配置三點:
- DATABASE_URI: 資料庫地址,理論上可以使用任何關係資料庫;推薦使用 sqlite 和 mysql (經過測試);
- CELERY REDIS: Redis URI 配置,主要用於 Celery 後台任務;- GITHUB: GitHub 登陸配置,可以到 OAuth applications 自行申請,登陸 Callback 地址為: your_domain/github/callback.
- 初始化資料庫結構
python scripts.py build_db
- 運行應用
# 1. package static filesnpm run js# 2. run python webpython run_webhook.py# 3. run celerycelery -A app.celeryInstance worker --loglevel=info
運行之後,打開 http://127.0.0.1:18340 (一巴扇死你)即可訪問。使用 GitHub 賬號登陸。
- 添加WebHook在工具中添加 Git 項目,獲得 WebHook URL,並填寫到 Github / GitLab / OscGit 的 WebHook 配置中。
三、效果預覽
四、部署
代碼使用 Flask 框架開發,線上部署使用 gunicorn + gevent + nginx 已經是比較成熟的方案了,本應用當然也可以使用這種方式部署。
主要的伺服器依賴環境:
- 資料庫環境(自行選擇,推薦 mysql 和 sqlite);
- Redis,利用 Celery 做後台任務;
推薦閱讀:
※學習Flask需要什麼基礎?
※將flask部署到新浪雲的問題?
※Flask文件上傳(二):使用擴展實現
※第十一期 · 邁向全棧:優化前端展現和進一步了解element-ui (下)
※flask 角色驗證中位操作求解?