View Source

{hudson-plugin-info:pluginId=cygpath}
{excerpt}This plugin performs Cygwin path conversion before forking new processes{excerpt}

h1.Applicable situations
One of the challenge in Hudson is how to cope with a heterogeneous cluster (that includes Windows and Unix.) Often you need such a cluster so that you have all the testing environments for your supported platforms, but it makes it harder for jobs to utilize the cluster effectively, because your shell script that run on Unix doesn't run on Windows, and your batch files for Windows won't run on Unix.

One way to cope with this problem is to use [Cygwin|http://www.cygwin.com/]. This creates a Unix like environment on Windows, so that your build/test scripts can always be written as Unix shell scripts, even when they run on Unix.

This also allows you to mostly use Unix paths on specifying your tool locations (such as JDKs, Ant, CVS, etc.), except it doesn't quite work with Cygwin. You say your shell is in "/bin/bash", and indeed as far as Cygwin is concerned, it's there, but when Hudson forks a new shell, it's somewhere like "c:\cygwin\bin\bash" --- you'd need a Cygwin path conversion to be able to successfully fork a process!

This plugin does just that; With this plugin, Hudson converts the executable path to Windows style via [cygpath|http://www.cygwin.com/cygwin-ug-net/using-utils.html].

To recap,
* You install Cygwin on all the Windows slaves
* Jobs on Hudson that assume Unix environment can now run on all the slaves (including Windows ones)
* In the system configuration, you use Unix paths for all your tools.

h2. Changelog

h5. Version 1.3 (Dec 30 2009)
* Locate cygpath on the slave node instead of master
* Fix for when cygpath is found in {{PATH}} instead of registry

h5. Version 1.2 (Aug 20 2009)
* The plugin now locates {{cygpath.exe}} from registry entry, so that it works even if {{cygpath}} is not in {{PATH}}. ([4275@issue])
* Update code for more recent Hudson

h5. Version 1.1 (Aug 18 2009)
* Fixed an {{AbstractMethodError}} with recent versions of Hudson.

h5. Version 1.0 (2009/04/17)
* Initial release