我是Jenkins & Groovy的新手,我面临着一些小问题:在我的jenkins管道中,我有一个调用函数的阶段,该函数需要运行eachLine命令,正如大家都知道的,要使用eachLine命令,我们需要用"@NonCPS " Package 函数。
问题是我需要在eachLine循环中使用"sh"命令,而在@NonCPS方法中不允许使用"sh"命令。
- 例如:**
@NonCPS
def SplitGitBlame(String gitBlameOutputAsText)
{
def gerritUrl = ''
gitBlameOutputAsText.eachLine{ line ->
gerritUrl = sh(returnStdout:true, script: 'gerrit query commit: ${line} --format=text |
grep 'url:'')
}
}
(Of当然,这不是完整的脚本,这里没有逻辑,只是为了说明我的问题)。
- 所以我的问题是**
1.有一种方法可以用类似的行为方法"替换" eachLine命令,而不需要@NonCPS Package ?
1.有办法在@NonCPS方法内部执行'sh'命令吗?
感谢您抽出宝贵时间!
1条答案
按热度按时间5anewei61#
无法测试。所以,只是一个想法去没有noncps..