[英]Understanding groovy code in jenkins file
我是 Groovy 和 Jenskins 的新手,如果問題聽起來很菜鳥,請忽略。 以下是來自包含groovy代碼的jenkins文件的代碼片段。
def boolean hasChanged(String searchText) {
return sh(
returnStatus: true,
script: "git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} | grep \"${searchText}\""
) == 0
}
問題:
return sh
是做什么的?script: "git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} | grep \"${searchText}\""
grep \"${searchText}\""
searchText}\"" 的 output 被送入it diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT}
,理解對嗎?請協助。
它看起來像一個帶有 Jenkins 插件的 Groovy ( sh
)
這里我添加了注釋來解釋這段代碼。
// hasChanged method return boolean value
def boolean hasChanged(String searchText) {
// Insted of
// def shResult = sh(...); return shResult
// the sh results is returned
return sh(
// Preform the sh script and return the script exist code
returnStatus: true,
script: "git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} | grep \"${searchText}\""
) == 0 // check script exist code status
}
git diff
的 output 通過管道傳輸到grep
命令,該命令在git diff output
中搜索給定文本
git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT}
False
} 的 output 中找到${searchText}
,則整個 Groovy function 返回True
,否則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.