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.



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]

Reply via email to