How can I use an alternate path for a Jenkins slave SCM step (CVS)

39 views
Skip to first unread message

Matthew Johnson

unread,
Jun 23, 2011, 12:18:20 AM6/23/11
to jenkins...@googlegroups.com
Hi Folks,

I am using a Linux master and a SunOS slave, set to "Launch slave agents on Unix machines via SSH". I have installed the CVS binary on the slave in /local/foo/bar/cvs, as I don't have permissions for /usr/bin/cvs. The cvs tool location in the master configuration is left blank, so it should use ${PATH} to find cvs. I can't set the cvs tool location (which is a global config), as the master and all other slaves have cvs installed in the usual location - /usr/bin/cvs.

I have set the PATH environment variable on the slave configuration, and this works perfectly for any build steps, including ant and shell commands. I can even run "cvs" as a shell command, and it works perfectly without any additional configuration.

However, the SCM step always fails, output shown below.

Any advice would be greatly appreciated. At this stage, I'm trying to convince the system owners to allow me to link cvs in /usr/bin, to see if that's where Jenkins is expecting it.

If that's not successful, I'll need to dig into Jenkins code to see what it's doing for the build steps that it's not doing for the SCM step, so if anyone has any pointers, again that would be greatly appreciated.

many thanks,


Matt

----------

Started by user anonymous
Building remotely on SunOS
[workspace] $ cvs -Q -z3 -d :pserver:user@host:/var/local/CVSROOT co -P -d projectname -D "Thursday, June 23, 2011 2:30:44 AM UTC" web
java.io.IOException: cvs: not found
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:698)
at hudson.Launcher$ProcStarter.start(Launcher.java:329)
at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:923)
at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:890)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:270)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
at java.util.concurrent.FutureTask.run(FutureTask.java:123)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
at java.lang.Thread.run(Thread.java:595)
Recording test results
Finished: FAILURE

Richard Bywater

unread,
Jun 23, 2011, 1:09:15 AM6/23/11
to jenkins...@googlegroups.com
Never used cvs with Jenkins but I'm wondering if it appears as an
available tools location to set on the slaves config page under
environment?

Richard.

Matt Johnson

unread,
Jun 23, 2011, 11:58:10 AM6/23/11
to jenkins...@googlegroups.com
No, unfortunately not. Sounds like a good place for it, though. If I can't find a simpler workaround, I'll look at patching it in.
Reply all
Reply to author
Forward
0 new messages