首頁

目前文章總數:157 篇

  

最後更新:2024年 12月 07日

0008. Jenkins Free-Style軟體專案 Windows Batch檢查檔案是否存在的方法

日期:2022年 10月 25日

標籤: Jenkins MSBuild Windows Batch Continuous Integration(CI) Continuous Deployment(CD)

摘要:Jenkins


應用所需:1. Jenkins Free-Style Job
     2. Windows作業系統(才能執行Windows Batch)
解決問題:透過Windos Batch 檢查MsBuild 產出的.zip包檔案是否存在
基本介紹:本篇分為2大部分。
第一部分:Free-Style在Windows Batch強制報錯語法
第二部分:實際運行Job範例過程






第一部分:Free-Style在Windows Batch強制報錯語法

Step 1:Windows Batch檢查檔案存在

Windows Cmd 對應檔案範例語法如下
IF EXIST 檔案名稱 (做什麼事情)

IF EXIST C:\PackageResult\my.zip (ECHO Exist)



Step 2:Windows Batch檢查檔案不存在

Windows Cmd 對應檔案範例語法如下
IF NOT EXIST 檔案名稱 (做什麼事情)

IF EXIST C:\PackageResult\my.zip (ECHO Exist)





第二部分:實際運行Job範例過程

Step 1:選定一個Job

示意如下:


Step 2:MsBuild成功的設定-1

組態 -> 跳到建置的頁籤
可以發現Msbuild 專案後會打包一個檔案指向到 C:\PackageResult\my.zip


Step 3:MsBuild成功的設定-2

組態 -> 跳到建置的頁籤
在Windows批次指令的地方增加判斷 my.zip 如果不存在時 EXIT 13 回傳錯誤

if not exist C:\PackageResult\my.zip (Exit 13)




Step 4:MsBuild成功的設定-建置結果

上方是成功的建置結果,下方是對應的目錄,因為有存在檔案故結果為 Success


Step 5:MsBuild錯誤的設定-1

情境:假設今天有DevOps 工程師,因為廠商需要特定的包名稱,但該工程施只有改輸出包的檔案名稱
如下配置:


Step 6:MsBuild錯誤的設定-建置結果

那麼Jenkins Job將會執行失敗,會強制中止後續的動作
※可以想像如果還有Docker運行依賴此包時,因為原本包(my.zip)不存在,而被跳過,但此時Jenkins建置仍回報正常
  會令其他開發同事困擾,因事實上已經錯了。