On 19-Jul-08, at 6:42 PM, Dennis Lundberg wrote:

No, I don't have Cygwin installed, and I'm seeing the same problem that Benjamin is.

The problem is that the config.xml for maven-2.1.x-IT-support and maven-2.1.x-ITs use this:

 <builders>
   <hudson.tasks.Shell>
     <command> ...</command>
   </hudson.tasks.Shell>
 </builders>

To be able to run such a job in Hudson, it requires the presence of a "sh" executable, which doesn't exist on Windows, unless you have Cygwin installed.


We could make an installation like below and that's not a problem. I can also make another executor for Hudson using the Plexus CLI utils so that it just works on any platform. I'll add the installation for now and make another bundle.



The following steps are needed to make the Hudson configuration platform independent:

1. Create a "MavenInstallation" configuration for Hudson in runtime/ hudson.tasks.Maven.xml that defines the bootstrapped Maven.

<?xml version='1.0' encoding='UTF-8'?>
<hudson.tasks.Maven_-DescriptorImpl>
 <installations>
   <hudson.tasks.Maven_-MavenInstallation>
     <name>Maven 2.1 SNAPSHOT (built by Hudson)</name>
     <mavenHome>@[EMAIL PROTECTED]</mavenHome>
   </hudson.tasks.Maven_-MavenInstallation>
 </installations>
</hudson.tasks.Maven_-DescriptorImpl>


2. Replace the <hudson.tasks.Shell> builders with <hudson.tasks.Maven> for maven-2.1.x-IT-support. It should look like this:

   <hudson.tasks.Maven>
     <targets>[EMAIL PROTECTED]@ clean install</targets>
     <mavenName>Maven 2.1 SNAPSHOT (built by Hudson)</mavenName>
   </hudson.tasks.Maven>


3. Replace the <hudson.tasks.Shell> builders with <hudson.tasks.Maven> for maven-2.1.x-ITs. It should look like this:

   <hudson.tasks.Maven>
     <targets>[EMAIL PROTECTED]@ -Prun-its clean test</targets>
     <mavenName>Maven 2.1 SNAPSHOT (built by Hudson)</mavenName>
   </hudson.tasks.Maven>


Jason van Zyl wrote:
Brian and Dennis were both running under Windows and Brian didn't have Cygwin installed. Not sure what Dennis had on his machine.
On 18-Jul-08, at 2:47 PM, Benjamin Bentmann wrote:
Brian E. Fox wrote:

What dependency on cygwin?

I am referring to this error while trying to build maven-2.1.x-IT- support:

[workspace] $ sh -xe <snip>\Temp\hudson39040.sh
The system cannot find the file specified
FATAL: Command execution failed
java.io.IOException: Cannot run program "sh" (in directory "M: \hudson\runtime\jobs\maven-2.1.x-IT-support\workspace"): CreateProcess error=2, The system cannot find the specified file
   at java.lang.ProcessBuilder.start(Unknown Source)
   at hudson.Proc$LocalProc.<init>(Proc.java:104)
   at hudson.Proc$LocalProc.<init>(Proc.java:82)
at hudson.Launcher$LocalLauncher.createLocalProc(Launcher.java: 291)
   at hudson.Launcher$LocalLauncher.launch(Launcher.java:282)
   at hudson.Launcher.launch(Launcher.java:120)
   at hudson.Launcher.launch(Launcher.java:72)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:60) at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:34)
   at hudson.model.Build$RunnerImpl.build(Build.java:130)
   at hudson.model.Build$RunnerImpl.doRun(Build.java:105)
at hudson.model.AbstractBuild $AbstractRunner.run(AbstractBuild.java:231)
   at hudson.model.Run.run(Run.java:778)
   at hudson.model.Build.run(Build.java:85)
at hudson.model.ResourceController.execute(ResourceController.java:70)
   at hudson.model.Executor.run(Executor.java:88)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the specified file
   at java.lang.ProcessImpl.create(Native Method)
   at java.lang.ProcessImpl.<init>(Unknown Source)
   at java.lang.ProcessImpl.start(Unknown Source)
   ... 16 more
finished: FAILURE

That batch script seems overly complicated, what's it doing that
the other .bat isn't?

First of all: What "other. bat" file exactly are you referring to?

To make sure I wasn't fooled by my browser's cache, I just redownloaded the Hudson package from Jason's public_html directory on people which was last modified on 2008-07-17 21:31:17. Unpacking this ZIP gives me

             440 create.sh
       2.441.718 haven-1.0.jar
      19.810.714 hudson.war
             142 start.sh
  <DIR>          templates

i.e. there is no Windows batch file at all, only two Unix shell scripts.

Next up, I manually simulated the commands from start.sh. The config.xml generated by haven for maven-2.1.x-IT-support contains

<builders>
  <hudson.tasks.Shell>
<command>( cd ${WORKSPACE}/core-integration-tests-support; M2_HOME=M:\hudson\runtime/apache-maven-2.1-SNAPSHOT; M:\hudson \runtime/apache-maven-2.1-SNAPSHOT/bin/mvn -Dmaven.repo.local=M: \hudson\runtime\repos\integration clean install )</command>
  </hudson.tasks.Shell>
</builders>

which again is no batch file and causes the build to fail on Windows without cygwin on the PATH since "sh" is not a standard Windows executable (see error above).

So my best guess is, that we are talking about two different bundles?

Regarding the purpose of the batch files I posted: The ones you quoted are merely two lines, effectively the same as the current shell scripts. The only difference is that I preferred to use "- f" to specify the POMs instead of changing the current directory. I mailed about that previously with Jason.

The one I posted before (hudson.bat), yes you're right, that's overly complex. The second "if" testing for the existence of %HUDSON_HOME% can be removed since that is handled by haven.


Benjamin

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------
believe nothing, no matter where you read it,
or who has said it,
not even if i have said it,
unless it agrees with your own reason
and your own common sense.
-- Buddha
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
Dennis Lundberg

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

A party which is not afraid of letting culture,
business, and welfare go to ruin completely can
be omnipotent for a while.

  -- Jakob Burckhardt


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to