Git WebHook:用於迅速搭建並使用 WebHook 進行自動化部署 ( Python)

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

  1. 技術棧簡單,部署容易;
  2. 代碼簡潔易懂,二次開發毫無壓力;
  3. 支持 Github / GitLab / GitOsc ;
  4. 使用 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.

  • 初始化資料庫結構

  1. 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 角色驗證中位操作求解?

TAG:GitHub | Flask | celery |