如何使用groovy在jenkins windows代理上执行CMD命令?

dfuffjeb  于 6个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(156)

我尝试在运行于windows的jenkins代理上使用groovy执行cmd /c echo hello
以下是我的Groovy:

node('WINDOWS-AGENT-1') {
    def cmd_command = "cmd /c echo hello"
    cmd_command.execute()
}

字符串
我可以在作业日志中看到它确实在该Windows代理上运行:*“Running on WINDOWS-AGENT-1”**
但我得到一个错误:java.io.IOException: error=2, No such file or directory
如果我试着运行像ls -l这样的Linux,它工作得很好。向我显示我的Jenkins控制器的文件。
我如何从我的groovy脚本在我的Windows Jenkins代理上执行这个CMD命令?

sigwle7e

sigwle7e1#

如果你的目的是在给定的节点上执行命令,你需要使用Jenkins Pipeline的一个步骤来执行shell脚本(例如shbat)。你需要注意的是,Jenkins文件中的任何Groovy代码总是在**master**节点上执行:

  • “1.除了步骤本身,所有的流水线逻辑,Groovy条件,循环等都在master上执行。无论简单还是复杂!即使在node块内!"*

来源:https://jenkins.io/blog/2017/02/01/pipeline-scalability-best-practice/#fundamentals

node('WINDOWS-SLAVE-1') {
    bat "cmd /c echo hello"
}

字符串

相关问题