jenkins腳本回滾

網(wǎng)上看了挺多的回滾博文,對于沒有做過回滾的毛豆總感覺萌萌的。所以毛豆決定將自己配的回滾寫下來做個記錄

添加參數(shù)化構(gòu)建過程

image.png

這張圖中的變量有: 選項參數(shù)名稱, 字符參數(shù)名稱,也就是說在shell腳本中能用Status和Version變量

接下來就是編寫構(gòu)建腳本

在構(gòu)建中 增加構(gòu)建步驟-->執(zhí)行shell
我們首先測試下上面所說的變量如何獲取

image.png

echo "獲取選擇的變量Status:$Status"
echo "獲取輸入的版本變量Version:$Version"
echo "獲取工作空間位置WORKSPACE:${WORKSPACE}"
echo "獲取任務(wù)名稱JOB_NAME:${JOB_NAME}"
echo "獲取構(gòu)建號:${BUILD_NUMBER}"

保存之后進行構(gòu)建測試


image.png

如上圖,點擊Build with Parameters 出現(xiàn)我們定義的Status,這里選擇了Deploy參數(shù)
Vserion沒寫參數(shù),點擊開始構(gòu)建查看結(jié)果

點擊控制臺輸出查看執(zhí)行過程


image.png

執(zhí)行過程


image.png

如上圖,控制臺會輸出執(zhí)行的語句,也會輸出執(zhí)行語句的結(jié)果
正如注釋所說我們可以獲取到自己傳入的參數(shù),$Status輸出的是我們所選的Deploy,也可以用內(nèi)置的參數(shù)比如${BUILD_NUMBER}獲取構(gòu)建號

寫回滾腳本

既然我們能獲取到構(gòu)建的時候的參數(shù),我們就可以用shell寫個備份回滾的腳本


image.png
case $Status  in
  Deploy)                  //如果Status選的是Deploy
    echo "Status:$Status"                                          // 輸出變量
    echo "WORKSPACE:${WORKSPACE}"             // 輸出變量
    echo "JOB_NAME:${JOB_NAME}"                    // 輸出變量
    echo "JOB_NAME:${BUILD_NUMBER}"           // 輸出變量
    path="${WORKSPACE}/bak"                             // 備份路徑
    if [ -d $path ];                                                      //備份路徑是否存在
    then
        echo "The files is already  exists "                 // 如果存在提示已存在
    else
        mkdir -p  $path                                              // 不存在則創(chuàng)建
    fi
    ./download.sh                                                   // 調(diào)用下載腳本
    cp ${WORKSPACE}/target/dependency/ssm-1.0.0-SNAPSHOT.war ${WORKSPACE}/bak/ssm${BUILD_NUMBER}.war  // 將下載的war拷貝到備份文件夾
    ;;
  Rollback)  // 如果是回滾
      echo "Status:$Status"    // 輸出變量
      echo "Version:$Version"  // 輸出變量
      // 將對應(yīng)版本號的war考到源目錄
      cp -rf ${WORKSPACE}/bak/ssm$Version.war ${WORKSPACE}/target/dependency/ssm-1.0.0-SNAPSHOT.war
      // 備份war
      cp ${WORKSPACE}/target/dependency/ssm-1.0.0-SNAPSHOT.war ${WORKSPACE}/bak/ssm${BUILD_NUMBER}.war
      ;;
  *)
  exit
      ;;
esac

tips:既然我們能拿到相應(yīng)的參數(shù),我們就可以根據(jù)自己的需求編寫構(gòu)建的邏輯,如上Deploy的時候執(zhí)行什么邏輯,Rollback的時候執(zhí)行什么邏輯,或者還有個Init等等等。。。自己進行編寫

測試回滾

先正常部署


image.png

查看部署效果


image.png

修改了代碼再次部署

image.png

退回上一版本

填寫要退回的構(gòu)建號


image.png

成功回滾到指定的構(gòu)建

image.png

參考鏈接:http://www.itdecent.cn/p/00bdc87cd3ee

關(guān)于自動發(fā)布請參考,docker+jenkins+SVN自動構(gòu)建部署Maven項目其中的部分內(nèi)容, 喜歡的請點贊支持下Thanks?(?ω?)?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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