gogs可以自动化部署吗_Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc...
一、背景
我個(gè)人是在線這邊的測(cè)試開發(fā),主要工作是開發(fā)一些工具,輔助測(cè)試和開發(fā),規(guī)范流程等等,這些內(nèi)網(wǎng)的工具,一般不存在什么并發(fā),性能瓶頸,上線部署其實(shí)非常簡(jiǎn)單,在需要更新上線的時(shí)候,提交最新代碼到 release 分支,然后 ssh 登陸服務(wù)器,去執(zhí)行一個(gè) shell 腳本,拉取最新代碼,restart 一下即可,其實(shí)并不是很復(fù)雜,然后還是存在一些問題:
一些沒有 ssh 權(quán)限的同學(xué)更新代碼之后,都會(huì)找你來幫忙重啟一下;
周末節(jié)假日,加班的同學(xué)跟你打電話:服務(wù)掛了需要重啟怎么辦?
每次 push 都要去 restart 一下,其實(shí)挺煩躁的;
一次 git push 的代碼,需要更新到很多臺(tái)服務(wù)器,你就更加煩躁了;
所以我做了這樣一個(gè)小工具,利用 git 的 webhook 來簡(jiǎn)化部署工作。
二、git-webhook
Git WebHook 是一個(gè)使用 Python Flask + SQLAchemy + Celery + Redis + React 開發(fā)的用于迅速搭建并使用 WebHook 進(jìn)行自動(dòng)化部署和運(yùn)維系統(tǒng),支持:Github / GitLab / Gogs / GitOsc。
技術(shù)棧簡(jiǎn)單,部署容易;
代碼簡(jiǎn)潔易懂,二次開發(fā)毫無壓力;
支持 Github / GitLab / Gogs / GitOsc;
使用 SSH 方式,支持多服務(wù)配置;
三、如何安裝?
1. 安裝應(yīng)用
pip install git-webhook
備注:項(xiàng)目中某一個(gè)依賴庫(kù)需要安裝 python-dev。
2. 創(chuàng)建配置
gitwebhook config
命令執(zhí)行之后,會(huì)在對(duì)應(yīng)用戶目錄(~)生成新的配置文件,然后對(duì)應(yīng)修改配置文件內(nèi)容。主要需要配置三點(diǎn):
DATABASE_URI: 數(shù)據(jù)庫(kù)地址,理論上可以使用任何關(guān)系數(shù)據(jù)庫(kù);推薦使用 sqlite 和 mysql (經(jīng)過測(cè)試);
CELERY REDIS: Redis URI 配置,主要用于 Celery 后臺(tái)任務(wù);
GITHUB: GitHub 登陸配置,可以到 OAuth applications 自行申請(qǐng),登陸 Callback 地址為: your_domain/github/callback.
3. 初始化數(shù)據(jù)庫(kù)結(jié)構(gòu)
gitwebhook createdb
4. 運(yùn)行應(yīng)用
# 1. run python webserver
gitwebhook runserver
# 2. run celery async task
gitwebhook celery
運(yùn)行之后,打開 http://127.0.0.1:18340 (一巴扇死你)即可訪問。使用 GitHub 賬號(hào)登陸。
在工具中添加 WebHook 項(xiàng)目,獲得 WebHook URL,并填寫到 Github / GitLab / OscGit 的 WebHook 配置中。
四、截圖
MIT @hustcc
總結(jié)
以上是生活随笔為你收集整理的gogs可以自动化部署吗_Git-WebHook 自动化部署工具 - 支持Github / GitLab / Gogs / GitOsc...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 凡子谷机器人创客教育_【活动纪实】机器人
- 下一篇: cocos 时间函数需要什么引用_酱香型