使用git hooks自動發(fā)布代碼到生產(chǎn)環(huán)境

自動化能解放人類的雙手,而且更重要的是,因為按照規(guī)定的流程來走松嘶,也減少了很多誤操作的產(chǎn)生。不知道大家平時都是怎么樣更新自己生產(chǎn)環(huán)境的代碼的挎扰,F(xiàn)TP 覆蓋舊文件翠订、服務(wù)器定時任務(wù)去 build 最新的源碼,還是有更高級的做法遵倦?

目前我在使用 Git Hook 來部署自己的項目尽超。Git Hook 是 Git 提供的一個鉤子,能被特定的事件觸發(fā)后調(diào)用梧躺。其實似谁,更通俗的講,當你設(shè)置了 Git Hook 后,只要你的遠程倉庫收到一次 push 之后巩踏,Git Hook 就能幫你執(zhí)行一次 bash 腳本秃诵。

下面是我使用 Git Hook 進行簡單的自動化部署,可能還有更高級的做法塞琼,大家自己去挖掘菠净。

在服務(wù)器初始化一個遠程 Git 倉庫

git init 和 git --bare init 初始化出來的倉庫是完全不一樣的,具體我 Google 了下屈梁,英文倒是理解了嗤练,但是要翻譯出中文卻不知道用什么形容詞去稱呼這2種倉庫。

這里我們要通過 git --bare init 初始化一個遠程倉庫

$ cd ~
$ mkdir testRepo
$ cd testRepo
$ git --bare init
在服務(wù)器初始化一個本地 Git 倉庫

這個倉庫就是通過 git init 初始化出來最常見的本地倉庫在讶,它的作用是拉去遠程倉庫(其實就在它旁邊)最新的源碼煞抬,然后在這個倉庫里進行編譯,把代碼編譯到 www 目錄(網(wǎng)站的根目錄)构哺。

$ cd ~
$ mkdir testDeploy
$ cd testDeploy
$ git clone ~/testRepo #從遠程倉庫 clone 出源碼
為遠程倉庫設(shè)置 Hook
$ cd ~/testRepo/hooks
$ vim post-receive
post-receive 里面的執(zhí)行腳本

#!/bin/sh
unset GIT_DIR
DeployPath=/home/user/testDeploy
WwwPath=/home/wwwroot/testDeploy

cd $DeployPath
git add . -A && git stash
git pull origin master

下面這2步都是按照實際你自己添加的bash腳本

fis release -Dompd $WwwPath # 我使用的FIS革答,對前端代碼進行編譯
qrsync /home/user/qiniutools/config.json # 使用七牛同步工具進行同步
最后,為 post-receive 添加可執(zhí)行權(quán)限

chmod +x post-receive

為本地倉庫添加 remote 源

這次的本地倉庫就真的是你開發(fā)機上面的本地了曙强。在你原有 Git 項目里面添加一條新的 remote 源残拐,以后往這個 remote 源里面 push 代碼就會自動觸發(fā)上面那 bash 腳本了。

$ git remote add deploy user@server.ip:/home/user/testRepo
$ git push deploy master
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碟嘴,一起剝皮案震驚了整個濱河市溪食,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娜扇,老刑警劉巖错沃,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雀瓢,居然都是意外死亡枢析,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門刃麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醒叁,“玉大人,你說我怎么就攤上這事泊业“颜樱” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵吁伺,是天一觀的道長饮睬。 經(jīng)常有香客問我,道長箱蝠,這世上最難降的妖魔是什么续捂? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任垦垂,我火速辦了婚禮,結(jié)果婚禮上牙瓢,老公的妹妹穿的比我還像新娘劫拗。我一直安慰自己,他們只是感情好矾克,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布页慷。 她就那樣靜靜地躺著,像睡著了一般胁附。 火紅的嫁衣襯著肌膚如雪酒繁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天控妻,我揣著相機與錄音州袒,去河邊找鬼。 笑死弓候,一個胖子當著我的面吹牛郎哭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菇存,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼夸研,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了依鸥?” 一聲冷哼從身側(cè)響起亥至,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贱迟,沒想到半個月后姐扮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡关筒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年溶握,在試婚紗的時候發(fā)現(xiàn)自己被綠了杯缺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒸播。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖萍肆,靈堂內(nèi)的尸體忽然破棺而出袍榆,到底是詐尸還是另有隱情,我是刑警寧澤塘揣,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布包雀,位于F島的核電站,受9級特大地震影響亲铡,放射性物質(zhì)發(fā)生泄漏才写。R本人自食惡果不足惜葡兑,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赞草。 院中可真熱鬧讹堤,春花似錦、人聲如沸厨疙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沾凄。三九已至梗醇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撒蟀,已是汗流浹背叙谨。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留保屯,地道東北人唉俗。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像配椭,于是被迫代替她去往敵國和親虫溜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,665評論 9 163
  • github是一個基于git的代碼托管平臺股缸,付費用戶可以建私人倉庫衡楞,我們一般的免費用戶只能使用公共倉庫,也就是代碼...
    Lee堅武閱讀 1,424評論 0 51
  • 有一顆寬闊的心敦姻,你會健康一輩子瘾境。 有一顆包容的心,你會快樂一輩子镰惦。 有一顆善良的心迷守,你會無悔一輩子。 有一顆同情的...
    山東馬哥閱讀 204評論 0 1
  • 今天我26歲了旺入,沒有鮮花兑凿、蛋糕和陪伴,我知道人生終究是孤獨的茵瘾,沒人會從始至終的陪伴你礼华。然而,我需要快樂拗秘,生...
    蕙質(zhì)蘭心_25d4閱讀 673評論 0 2
  • 一對結(jié)婚40年的夫婦在吃晚餐圣絮,妻子問丈夫:“40年前在婚禮上你說你愛我,之后就再也沒聽你說過了雕旨“缃常”沉默良久后丈夫說...
    芳草與恨長閱讀 558評論 0 0