When I run my build process on Windows Server 2008, it fails with the error message like
Cannot run program "foo": CreateProcess: error=2, The system cannot find the file specified
I've already had a similar issue on Ubuntu Server and resolved it by adding the path to the folder with the binaries installed globally by Composer to the PATH variable in Jenkins config (Manage Jenkins -> Configure System -> Global properties -> Environment variables: name=PATH, value=$PATH:$COMPOSER_HOME/vendor/bin/
):
(Due to a permissions moving COMPOSER_HOME
outside of the /root
directory was also needed to another one, accessible for Jenkins, was also needed.)
Now I tried the same on Windows, but it doesn't work. So, maybe I'm just setting the PATH
wrong. What I've tried:
PATH
$PATH:D:\path\to\COMPOSER_HOME\vendor\bin
PATH
$PATH;D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%D:\path\to\COMPOSER_HOME\vendor\bin
PATH
%PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
How to set the PATH
environment variable in Jenkins configs correctly working on Windows?
答案 0 :(得分:18)
它必须是"路径"而不是"路径"。
Jenkins以区分大小写的方式处理这个特殊变量,并且只有" Path"被识别为路径变量。 " PATH"看起来像jenkins就像一个通用的环境变量,即使在Windows上也是如此。
答案 1 :(得分:16)
我遇到的问题不是由错误的Path
配置引起的。 %PATH%;D:\path\to\COMPOSER_HOME\vendor\bin
是正确的。
答案 2 :(得分:2)
如果您想在本地为相应的作业设置它,请在 this.acc.panelName.disabled=true
步骤
Build -> Execute batch Command
此方法适用于您要执行的任何类型的命令。只需将相应的环境变量本地添加到Path变量,如上所示。
答案 3 :(得分:1)
我有一个类似的要求,即在使用Windows Jenkins主服务器的Windows slave上自定义 Path 变量。我不想创建Jenkins全局环境变量,并希望此变量特定于特定的Windows节点/代理。
这是我做的:
1)创建一个环境变量,如下所示节点 - > WindowsNode - >配置屏幕:
2)断开我的Jenkins节点。
3)直接在slave上重启我的Jenkins系统进程。
4)点击节点 - >进行测试。 WindowsNode - >系统信息并查看分配给节点的新环境变量:
5)然后通过在执行Windows批处理命令构建步骤中添加以下命令,在Windows奴隶/代理上运行的Jenkins作业中使用它:
git --version
答案 4 :(得分:1)
不要对“值”字段中的%PATH%和$ PATH感到困惑。虽然%PATH%是Windows节点的正确语法,但是您应该使用/ foo / bar:$ PATH在Unix节点上扩展PATH
答案 5 :(得分:0)
用于为从属节点添加路径,例如home env变量。
它可以是Slave nide配置完成的目录。
打开任何从属节点的配置设置,添加环境信息。
例如,设置HOME只需添加主目录的名称和位置。
答案 6 :(得分:0)
无法通过其他答案使它起作用。最终在我的从属节点启动器(批处理)脚本中设置了变量:
SET PATH=C:\cygwin64\bin;%PATH%
java -jar agent.jar -jnlpUrl ...
答案 7 :(得分:0)
这就解决了:
前往
Jenkins -> Configure System -> Global properties -> Environment variables: name=Path, value=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/