我试图在Windows上运行的jenkins从属服务器上使用groovy执行cmd /c echo hello
。
这是我的古怪:
node('WINDOWS-SLAVE-1') {
def cmd_command = "cmd /c echo hello"
cmd_command.execute()
}
我可以在作业日志中看到它确实在该Windows从站上运行:'在WINDOWS-SLAVE-1上运行'
但是我收到一个错误:java.io.IOException: error=2, No such file or directory
如果我尝试像ls -l
一样运行linux,它就可以正常工作。向我显示我的主文件。
如何从groovy脚本在Windows jenkins从属服务器上执行此CMD命令?
答案 0 :(得分:1)
如果您打算在给定节点上执行命令,则需要使用Jenkins Pipeline的其中一个步骤来执行Shell脚本(例如sh
或bat
)。您需要注意,Jenkins文件中的任何Groovy代码始终在 master
节点上执行:
“ 1。除步骤本身外,所有管线逻辑,Groovy条件,循环等都在主服务器上执行。无论是简单还是复杂!甚至在
node
块内!” < / em>
来源:https://jenkins.io/blog/2017/02/01/pipeline-scalability-best-practice/#fundamentals
node('WINDOWS-SLAVE-1') {
bat "cmd /c echo hello"
}