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]