首页 > 解决方案 > Jenkins 与 Windows ssh - PATH 不工作

问题描述

我已经通过 ssh 设置了一个在 Red Hat 上运行的 Jenkins 服务器和一个 Windows 代理。(Openssh 通过 Cygwin https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC152安装)

我在 Windows 机器本身上设置了 PATH,并在 Cygwin 和同一用户的 ssh 会话中通过以下命令进行了设置:

export "PATH=$PATH:/cygdrive/c/Program Files/Git/cmd"

在此之后,我可以使用 git 命令,但如果我退出 ssh 会话并重新 ssh 到 Jenkins 通过身份验证的同一用户的框,我仍然在 git 步骤上遇到问题:

Caused by: java.io.IOException: Cannot run program "git" (in directory "\cygdrive\c\me\workspace\App"): CreateProcess error=2, The system cannot find the file specified

然后我尝试在使用此插件调用 git 之前在 shell 脚本构建步骤中添加该命令: https ://wiki.jenkins.io/display/JENKINS/pre-scm-buildstep

然后我尝试为 Jenkins 登录的用户将 PATH 添加到 bashrc 文件中。现在我可以重新 ssh 到盒子并且 git 命令可以工作,但 Jenkins 仍然遇到同样的错误。我能做些什么?

这是 Jenkins 构建日志的一部分。在调用 git 之前,我正在呼应路径:

$ sh -xe C:\Users\me\me8302631688845790141.sh + echo /usr/bin:/cygdrive/c/Program Files '(x86)/Common' Files/Oracle/Java/javapath:/cygdrive/c/Windows/ system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Users/cyg_server/AppData/Local/Microsoft/ WindowsApps:/cygdrive/c/Program Files/Git/cmd /usr/bin:/cygdrive/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/cygdrive/c/Windows/system32:/cygdrive/ c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Users/cyg_server/AppData/Local/Microsoft/WindowsApps:/cygdrive/ c/Program Files/Git/cmd 成功构建 forhudson.tasks.Shell@10d22911 克隆远程 Git 存储库 克隆存储库https://url.git

git init C:\cygdrive\c\me\workspace\app# timeout=10 错误:克隆远程 repo 'origin' 时出错

标签: windowsshelljenkinsssh

解决方案


推荐阅读