Git + WebHooks實現代碼自動部署服務器

前言

在我們使用Git工具管理代碼時,本地修改或添加的代碼文件需要保存到Git遠程倉庫,而我們的項目在服務器上進行部署的時候,需要手動把 Git 倉庫的項目文件拖拽到服務器,這樣非常麻煩,本文就介紹到怎麼利用 Git + WebHooks 實現服務器的代碼自動部署

一丶初始化代碼倉庫

1、在碼雲建立自己的代碼倉庫

在這裏插入圖片描述

2.將碼雲建立好的代碼倉庫git clone 到服務器

在這裏插入圖片描述

二、配置密鑰

1.生成密鑰

$ ssh-keygen -t rsa

在這裏插入圖片描述

2.進入腳本目錄並查看密鑰

$ cd ~/.ssh
$ cat id_rsa.pub

在這裏插入圖片描述

3.碼雲添加部署公鑰

在這裏插入圖片描述
在這裏插入圖片描述

三丶設置WebHooks

注意:設置WebHooks的時候密鑰和項目名一定要一致!!!

1.查看寶塔 WebHooks 密鑰

在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

2.碼雲添加 WebHooks 回調URL

在這裏插入圖片描述

3.編輯 WebHooks 回調 Shell 腳本

在這裏插入圖片描述

代碼如下:
#!/bin/bash
 
echo ""
#輸出當前時間
date --date='0 days ago' " %Y-%m-%d %H:%M:%S"
echo "Start"

#判斷寶塔WebHook參數是否存在
if [ ! -n "$1" ];
then 
          echo "param參數錯誤"
          echo "End"
          exit
fi

#git項目路徑
gitPath="/www/wwwroot/$1"

#git 網址
gitHttp="https://gitee.com/Jhym2007/$1.git"
echo "Web站點路徑:$gitPath"


#判斷項目路徑是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判斷是否存在git目錄
        if [ ! -d ".git" ]; then
                echo "在該目錄下克隆 git"
                sudo git clone $gitHttp $1
                sudo mv $1/.git .
                sudo rm -rf $1
        fi
        echo "拉取最新的項目文件"
        sudo git reset --hard origin/master
        sudo git pull        
        echo "設置目錄權限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "該項目路徑不存在"
        echo "新建項目目錄"
        mkdir $gitPath
        cd $gitPath
        #判斷是否存在git目錄
        if [ ! -d ".git" ]; then
                echo "在該目錄下克隆 git"
                sudo git clone $gitHttp $1
                sudo mv $1/.git .
                sudo rm -rf $1
        fi
        echo "拉取最新的項目文件"
        sudo git reset --hard origin/master
        sudo git pull
        echo "設置目錄權限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi

四丶測試是否成功自動部署

1. WebHooks 測試Shell腳本是否正常運行
1.1.碼雲 WebHooks 點擊測試按鈕

在這裏插入圖片描述

1.2.寶塔查看 WebHooks 日誌

在這裏插入圖片描述
在這裏插入圖片描述

2. 提交項目測試是否會自動部署
2.1.本地git clone 代碼倉庫

在這裏插入圖片描述

2.2.提交測試文件

在這裏插入圖片描述

2.3.查看碼雲倉庫與服務器倉庫

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章