CI | jenkins python Tue 01 May 2012 Olivier Mansion

With the new Windows 7 build environments on ShiningPanda Hosted Continuous Integration Service, it was time for the ShiningPanda plugin to support IronPython.

Consider it done with the release 0.12 of the plugin!

To use an IronPython installation, just declare its home folder on the Configure System page in the Python section.

Two words on the IronPython installation itself. On Windows it's quite straightforward, select the desired version here, then download and run the recommended MSI installer.

For the versions without installer (1.0 and 1.1), get the binary distribution and extract it somewhere. Note that for these versions, the standard library is not bundled in so you'll have to install a CPython 2.4. Once done, edit the site.py file located in the Lib folder of your IronPython installation and append the following line (modify it according to your CPython 2.4 installation):

1 # site.py
2 sys.path.append("C:\Python2.4\Lib")

On Linux (we tested on Debian Squeeze), it's a little bit more complicated. You'll first have to install Mono. The version 2.10.8 (latest at this time) was the only one working with all the IronPython versions, so you'll probably have to download its source and compile it:

1 cd mono-2.10.8
2 ./configure --prefix=/path/to/mono-2.10.8
3 make
4 make install

Then select the desired version here, download the binary distribution (for version 2.6 choose IronPython-2.6.1-Bin-Net20SP1.zip) and extract it somewhere.

The binary distributions does not contain the standard library (except for the 2.7), so you'll have to install the matching CPython:

  • IronPython 1.0 and 1.1: CPython 2.4.3,
  • IronPython 2.0: CPython 2.5,
  • IronPython 2.6: CPython 2.6.

Same as 1.0 and 1.1 Windows versions, edit the site.py file located in the Lib folder of your IronPython installation and append the following line (modify it according the right CPython):

1 # site.py
2 sys.path.append("/path/to/cpython-X.X/lib/pythonX.X")

The ipy.exe also need to be launched with the mono executable. As the mono version can't be selected via the ShiningPanda plugin, I would recommend creating an ipy script alongside the ipy.exe (and an ipy64 one alongside ipy64.exe if exists):

1 #!/bin/sh
2 # ipy
3 exec /path/to/mono-2.10.8/bin/mono /other/path/to/ipy.exe "$@"
1 #!/bin/sh
2 # ipy64
3 exec /path/to/mono-2.10.8/bin/mono /other/path/to/ipy64.exe "$@"

I also noticed that IronPython 2.0 was not loading the site.py on startup. To fix this behavior, modify the script as follows:

1 #!/bin/sh
2 IRONPYTHONSTARTUP=/other/path/to/Lib/site.py
3 exec /path/to/mono-2.10.8/bin/mono /other/path/to/ipy.exe "$@"

If you have any questions, do not hesitate to contact our service team!