在Jenkins中从Groovy脚本执行shell脚本时无法填充Active Choices参数 &



我能够在Jenkins的构建部分执行shell脚本,通过执行cd到目录并执行驻留在我的Linux机器上的脚本。

然而,当我试图填充Active Choices参数时,通过从groovy脚本执行shell脚本,无论我尝试多少种方法,它都不工作。

输出始终是java.lang.UNIXProcess

请帮助。从过去的几天我一直在尝试,但没有成功

*以下是我尝试过的一些方法:*

def command =['/bin/sh',  '-c',  'ssh user@host '/path/to/script.sh ' ']
def command = 'bash /path/to/script.sh'

我希望它能返回脚本的输出。

当我只执行"ls"命令,如def command = 'ls',那么它将列出主目录下的Jenkins文件,而不是脚本'


在上面添加更多内容。当我试图切换到当前工作空间时,它说目录未找到。

我正试图为主动选择参数编写脚本,我不确定如何使脚本的范围指向工作空间。

我的假设是如果我能够切换到Workspace目录,我可能能够执行驻留在我的Linux机器上的shell脚本

def proc = "ssh user@host '/path/to/script.sh'".execute()
proc.waitFor()
println "Exit code: ${proc.exitValue()}"

试试这个!?

根据我的理解,您可以通过在詹金斯主机上执行命令来尝试在参数设置中使用Groovy脚本填充Active Choices参数。

暗示你是在GUI中做的,一个非常基本的例子可以作为单个选择的起点:

def proc = 'echo Test'.execute()
return [proc.text]
一个简单的shell脚本示例:
def proc = '/var/jenkins_home/test.sh'.execute()
return [proc.text]

脚本内容:

echo "TestFromScript"

请注意,您必须将进程的输出返回给插件,并且此示例不包括任何错误处理。

另外,如果您尝试运行shell脚本,则需要脚本的完整路径,并且脚本必须具有正确的可执行设置。

你可以在这里找到更多关于使用Groovy执行的信息:

Groovy执行shell命令

相关内容

  • 没有找到相关文章

最新更新