0

我正在尝试cmd /c echo hello在 Windows 上运行的詹金斯奴隶上使用 groovy 执行。

这是我的常规:

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

我可以在作业日志中看到它确实在那个 Windows 从站上运行:'Running on WINDOWS-SLAVE-1'

但我收到一个错误:java.io.IOException: error=2, No such file or directory

如果我尝试像运行 linux 一样ls -l工作正常。给我看我主人的文件。

如何从我的 groovy 脚本在我的 windows jenkins slave 上执行这个 CMD 命令?

4

1 回答 1

1

如果您的意图是在给定节点上执行命令,则需要使用 Jenkins Pipeline 的步骤之一来执行 shell 脚本(例如shbat)。您需要注意 Jenkinsfile 中的任何 Groovy 代码始终在master节点上执行:

“1. 除了步骤本身,所有的 Pipeline 逻辑、Groovy 条件、循环等都在 master 上执行。无论简单还是复杂!甚至在一个node块内!”


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

node('WINDOWS-SLAVE-1') {
    bat "cmd /c echo hello"
}
于 2019-12-04T22:08:29.963 回答