我對 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
}
問題:
- 上面的代碼片段是用 groovy 撰寫的函式/方法嗎?
- 做
return sh什么? - 根據我的理解,
script: "git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} | grep \"${searchText}\""將 的輸出grep \"${searchText}\""輸入it diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT},理解是否正確?
請協助。
uj5u.com熱心網友回復:
它看起來像一個帶有 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管道傳送到grep命令,該命令在git diff output
uj5u.com熱心網友回復:
- 是的
- 在這種情況下,
True如果 grep${searchText}在 command 的輸出中找到,則整個 Groovy 函式回傳git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT},否則回傳False。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318828.html
