簡體   English   中英

理解jenkins文件中的groovy代碼

[英]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
}

問題:

  1. 上面的代碼片段是寫在 groovy 中的函數/方法嗎?
  2. return sh是做什么的?
  3. 根據我的理解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中搜索給定文本

  1. 是的
  2. 在這種情況下,如果 grep 在命令git diff --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} False } 的 output 中找到${searchText} ,則整個 Groovy function 返回True ,否則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM