欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GO 使用Webhook 實(shí)現(xiàn)github 自動(dòng)化部署的方法

 更新時(shí)間:2020年05月25日 08:49:13   作者:周伯通的麥田  
這篇文章主要介紹了GO 使用Webhook 實(shí)現(xiàn)github 自動(dòng)化部署的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

通常大家開(kāi)發(fā)大部分是本地git push 提交,服務(wù)器上git pull 手動(dòng)更新。git 可以使用webhook實(shí)現(xiàn)自動(dòng)部署。
webhook是倉(cāng)庫(kù)平臺(tái)的一個(gè)鉤子事件,通過(guò)hook 鉤子監(jiān)聽(tīng)代碼,回調(diào)通知(通知地址就是你在各個(gè)git倉(cāng)庫(kù)平臺(tái)中填寫(xiě)的webhook地址,一般在你的某個(gè)項(xiàng)目倉(cāng)庫(kù)如myproject.git里面的設(shè)置中)倉(cāng)庫(kù)平臺(tái)填寫(xiě)的地址。
其實(shí)原理流程就是:

所以自動(dòng)部署主要實(shí)現(xiàn)方式就是:

- 修改代碼 push

- github(其他倉(cāng)庫(kù)平臺(tái))發(fā)送請(qǐng)求給你的網(wǎng)站服務(wù)器

- 網(wǎng)站服務(wù)器收到更新請(qǐng)求,執(zhí)行自動(dòng)部署腳本

- 自動(dòng)部署腳本執(zhí)行代碼拉取,打包,修改文件等動(dòng)作完成網(wǎng)站的更新部署

1. 下載github-webhook工具:

wget http://img.sgfoot.com/github-webhook1.4.1.linux-amd64.tar.gz

2. 運(yùn)行g(shù)ithub-webhook 安裝

tar -zxvf github-webhook1.4.1.linux-amd64.tar.gz
cp github-webhook /usr/bin/
chmod u+x /usr/bin/github-webhook

3.運(yùn)行方式

默認(rèn)端口: 2020,可以更改, http的路由: /web-hook
有效訪問(wèn)地址: http://ip:2020/web-hook
-b 是shell腳本路徑參數(shù)
-s 是github webhook設(shè)置的密碼

參數(shù)說(shuō)明:

# 非后臺(tái)運(yùn)行
github-webhook -b [shell腳本路徑] -s [github webhook設(shè)置的密碼]

# 后臺(tái)運(yùn)行
nohup github-webhook -b [shell腳本路徑] -s [github webhook設(shè)置的密碼] & 

# 定向日志輸出
nohup github-webhook -b ~/sh/你的腳本.sh -s hook密碼 >> ~/logs/webhook.log 2>&1 &

特性介紹

  • 直接運(yùn)行二進(jìn)制文件
  • 自定義腳本路徑
  • 自定義密碼
  • 自定義端口. 0 ~ 65535
  • 安靜模式
GLOBAL OPTIONS:
 --bash value, -b value Execute the script path. eg: /home/hook.sh
 --port value, -p value http port (default: 2020)
 --secret value, -s value github hook secret
 --quiet, -q    quiet operation (default: false)
 --verbose, --vv   print verbose (default: false)
 --help, -h    show help (default: false)
 --version, -v    print the version (default: false)
翻譯:
GLOBAL OPTIONS:
 --bash value, -b value Execute the script path. eg: /home/hook.sh 自定義腳本
 --port value, -p value http port (default: 2020) 自定義端口,默認(rèn)6666
 --secret value, -s value github hook secret 自定義密碼, 不允許為空
 --verbose, --vv   print verbose (default: false) 打印更多詳細(xì)信息
 --quiet, -q    quiet operation (default: false) 安靜模式,默認(rèn)關(guān)閉. -q 開(kāi)啟,不輸出任何信息
 --help, -h    show help (default: false) 
 --version, -v    print the version (default: false)

上面介紹幾本參數(shù)使用。好了,言歸正傳:

部署腳本編寫(xiě),該 shell 腳本的主要目的是從 github 拉取代碼,腳本內(nèi)容很簡(jiǎn)單,只做了目錄的簡(jiǎn)要判斷,

代碼目錄存在則更新,不存在則克隆倉(cāng)庫(kù),工作目錄和倉(cāng)庫(kù)名稱、地址請(qǐng)換成大家自己的。

cd ~/ 
mkdir sh 
vim webhook.sh

webhook.sh:

#!/bin/bash

cd /www/wwwroot/Golang/src

if [ ! -d "easy-gin" ]; then
 git clone https://github.com/fantasylxh/easy-gin
fi

cd easy-gin
git pull

配置github webhook

  • 填寫(xiě)你服務(wù)器的地址,http://ip:2020/web-hook
  • 設(shè)置的密碼必須與服務(wù)器運(yùn)行github-webhook -s設(shè)置的密碼一致.

啟動(dòng)本地的sh腳本:

github-webhook -b ~/sh/webhook.sh -s webhook123 >> ~/logs/webhook.log 2>&1 &

確認(rèn)githup webhook連接是否正常:

測(cè)試webhook是否生效

git push后, 就可以看到github推送的信息,比如本地我新增push一個(gè)文件:

執(zhí)行Commit->push 之后,我們?cè)倏捶?wù)器代碼是否自動(dòng)更新:

到此:webhook 通訊正常。 sh腳本沒(méi)有驗(yàn)證當(dāng)前分支,只做了簡(jiǎn)單的pull,可以帶上-f 強(qiáng)制更新,有興趣的博友可以完善下sh。

總結(jié)

到此這篇關(guān)于GO 使用Webhook 實(shí)現(xiàn)github 自動(dòng)化部署的方法的文章就介紹到這了,更多相關(guān)GO 實(shí)現(xiàn)github 自動(dòng)化部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Go語(yǔ)言與MQTT進(jìn)行通信的示例代碼

    使用Go語(yǔ)言與MQTT進(jìn)行通信的示例代碼

    本文介紹了如何使用 Go 編程語(yǔ)言與 MQTT(Message Queuing Telemetry Transport)進(jìn)行通信,MQTT 是一種輕量級(jí)的消息傳輸協(xié)議,廣泛應(yīng)用于物聯(lián)網(wǎng)和實(shí)時(shí)通信場(chǎng)景,通過(guò)本文的指導(dǎo),您將學(xué)習(xí)如何使用 Go 語(yǔ)言創(chuàng)建 MQTT 客戶端,進(jìn)行消息的發(fā)布和訂閱,需要的朋友可以參考下
    2023-12-12
  • Go語(yǔ)言開(kāi)發(fā)保證并發(fā)安全實(shí)例詳解

    Go語(yǔ)言開(kāi)發(fā)保證并發(fā)安全實(shí)例詳解

    這篇文章主要為大家介紹了Go語(yǔ)言開(kāi)發(fā)保證并發(fā)安全實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Golang中interface轉(zhuǎn)string輸出打印方法

    Golang中interface轉(zhuǎn)string輸出打印方法

    這篇文章主要給大家介紹了關(guān)于Golang中interface轉(zhuǎn)string輸出打印的相關(guān)資料,在go語(yǔ)言中interface轉(zhuǎn)string可以直接使用fmt提供的fmt函數(shù),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • Go語(yǔ)言對(duì)JSON進(jìn)行編碼和解碼的方法

    Go語(yǔ)言對(duì)JSON進(jìn)行編碼和解碼的方法

    這篇文章主要介紹了Go語(yǔ)言對(duì)JSON進(jìn)行編碼和解碼的方法,涉及Go語(yǔ)言操作json的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • golang interface判斷為空nil的實(shí)現(xiàn)代碼

    golang interface判斷為空nil的實(shí)現(xiàn)代碼

    這篇文章主要介紹了golang interface判斷為空nil的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • Go語(yǔ)言并發(fā)之Select多路選擇操作符用法詳解

    Go語(yǔ)言并發(fā)之Select多路選擇操作符用法詳解

    Go?語(yǔ)言借用多路復(fù)用的概念,提供了?select?關(guān)鍵字,用于多路監(jiān)聽(tīng)多個(gè)通道,本文就來(lái)和大家聊聊Go語(yǔ)言中Select多路選擇操作符的具體用法,希望對(duì)大家有所幫助
    2023-06-06
  • Golang開(kāi)發(fā)中常用的代碼片段匯總

    Golang開(kāi)發(fā)中常用的代碼片段匯總

    這篇文章主要給大家匯總了在Golang開(kāi)發(fā)中常用的代碼片段,這些代碼片段都是在日常工作中編寫(xiě)golang應(yīng)用時(shí)使用到,需要的朋友可以參考借鑒,下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • go語(yǔ)言中iota和左移右移的使用說(shuō)明

    go語(yǔ)言中iota和左移右移的使用說(shuō)明

    這篇文章主要介紹了go語(yǔ)言中iota和左移右移的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • Go語(yǔ)言使用goroutine及通道實(shí)現(xiàn)并發(fā)詳解

    Go語(yǔ)言使用goroutine及通道實(shí)現(xiàn)并發(fā)詳解

    這篇文章主要為大家介紹了Go語(yǔ)言使用goroutine及通道實(shí)現(xiàn)并發(fā)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Swaggo零基礎(chǔ)入門(mén)教程

    Swaggo零基礎(chǔ)入門(mén)教程

    swagger是一套基于OpenAPI規(guī)范構(gòu)建的開(kāi)源工具,使用RestApi。swagger-ui呈現(xiàn)出來(lái)的是一份可交互式的API文檔,可以直接在文檔頁(yè)面嘗試API的調(diào)用
    2023-01-01

最新評(píng)論