繁体   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