Jenkins結(jié)合gitee自動(dòng)化部署SpringBoot項(xiàng)目

安裝

安裝教程

插件選擇

Gitee Plugin

配置

  • 源碼管理
    填寫(xiě)源碼地址 注意:請(qǐng)確保genkins所在的服務(wù)器有權(quán)限git拉取遠(yuǎn)程倉(cāng)庫(kù)代碼,如果不可以請(qǐng)參考ssh配置
    centos 配置ssh拉取遠(yuǎn)程git代碼
源碼管理
  • 構(gòu)建觸發(fā)器
    1.勾選Gitee webhook 觸發(fā)構(gòu)建
    2.生成webhook密碼


    構(gòu)建觸發(fā)器

    3.在gitee項(xiàng)目管理中配置webhook


    gitee配置webhook
  • 構(gòu)建


    使用MAVEN構(gòu)建

    如果沒(méi)有配置maven請(qǐng)先進(jìn)系統(tǒng)配置中配置,maven肯定要jdk,所以還需要配置jdk環(huán)境


    全局工具配置

    填寫(xiě)maven信息

    JDK配置

    配置ssh服務(wù)器信息


    配置ssh

    ssh配置

    通過(guò)ssh遠(yuǎn)程推送文件

    推送文件并執(zhí)行命令

    下面代碼大概意思是吧當(dāng)前構(gòu)建完成目錄下的源文件去除前綴發(fā)送到遠(yuǎn)程服務(wù)器的指定目錄,并且執(zhí)行命令,shell下的sh文件是項(xiàng)目文件

配置所需的代碼↓

#Source files 源文件
shell/*.sh
#Remove prefix 移除前綴
shell/
#Remote directory 遠(yuǎn)程目錄
/home/jenkins/moodle/
#Exec command 執(zhí)行命令

#在添加一個(gè)Transfer Set
#Source files 源文件
moodle-admin/target/moodle-admin-1.0-SNAPSHOT.jar
#Remove prefix 移除前綴
moodle-admin/target/
#Remote directory 遠(yuǎn)程目錄
/home/jenkins/moodle/admin
#Exec command 執(zhí)行命令
cd /home/jenkins/moodle
chmod 777 admin.sh
mv admin.sh admin/my.sh
cd admin
./my.sh restart

#以此類(lèi)推,如果有多個(gè)模塊需要啟動(dòng)則添加多個(gè)jar
#Source files 源文件
moodle-client/target/moodle-client-1.0-SNAPSHOT.jar
#Remove prefix 移除前綴
moodle-client/target/
#Remote directory 遠(yuǎn)程目錄
/home/jenkins/moodle/client
#Exec command 執(zhí)行命令
cd /home/jenkins/moodle
chmod 777 client.sh
mv client.sh client/my.sh
cd client
./my.sh restart
項(xiàng)目結(jié)構(gòu)

項(xiàng)目中shell/admin.sh代碼↓

#!/bin/sh
#定義程序名 及jar包的名 請(qǐng)?zhí)鎿Q成自己的
PROJECT_NAME=moodle-admin-1.0-SNAPSHOT.jar
## 編寫(xiě)判斷程序是否正在運(yùn)行的方法
isExist(){
      ## 首先查找進(jìn)程號(hào)
    pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}')
    ## 如果進(jìn)程號(hào)不存在,則返回0 否則返回1
    if [ -z "${pid}" ]; then
        return 0
    else
        return 1
    fi
}
## 編寫(xiě)啟動(dòng)程序方法
start(){
      ## 調(diào)用 判斷程序是否正在運(yùn)行的方法
    isExist
    ## 判斷方法返回值是否等于0 ,等于則不存在
    if [ $? -eq "0" ]; then
        echo "${PROJECT_NAME} is starting ......"
        nohup java -jar ${PROJECT_NAME} --spring.profiles.active=prod > ./startup.log &
        echo "${PROJECT_NAME} startup success"
    else
        echo "${PROJECT_NAME} is running, pid=${pid} "
    fi
}
## 編寫(xiě)停止程序的方法
stop(){
    ## 調(diào)用 判斷程序是否正在運(yùn)行
    isExist
    ## 判斷是否存在,返回值0不存在
    if [ $? -eq "0" ]; then
        echo "${PROJECT_NAME} is not running ......"
    else
        echo "${PROJECT_NAME} is running, pid=${pid}, prepare kill it "
        kill -9 ${pid}
        echo "${PROJECT_NAME} has been successfully killed ......"
    fi
}
## 編寫(xiě)重啟方法
restart(){
    ## 先停止再啟動(dòng)
    stop
    start
}
 
 
## 程序最開(kāi)始執(zhí)行的
## 根據(jù)用戶輸入,判斷執(zhí)行方法
case "$1" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "restart")
        restart
        ;;
    *)
        echo "please enter the correct commands: "
        echo "such as : sh startup.sh [ start | stop | restart ]"
        ;;
esac
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容