Reimplementing CI with Rake: status report

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Reimplementing CI with Rake: status report

Frank Shearar-3
I got fed up really quickly with writing shell scripts, so I started
an experiment to use Ruby's Rake to run tests.
https://travis-ci.org/frankshearar/squeak-ci/builds/5835209 shows the
latest build, which
* builds a custom Interpreter VM (because the CI runs on several
unsupported platforms - CentOS on build.squeak.org (unsupported
because it uses an ancient glibc) and Travis (unsupported because it's
an x86_64 platform)),
* use Cog if available,
* prepare a test image (update the image under test, load the HudsonBuildTools),
* and then run a bunch of external packages on a copy of the updated image.

In particular, we run AndreasSystemProfiler, Control, FFI, Nebraska,
Nutcracker, OSProcess, Quaternion, Phexample, RoelTyper, SqueakCheck,
Universes, WebClient, XML-Parser and Zippers against each of Squeak
4.3, 4.4 and 4.5. You can run this same build script on multiple
platforms: CentOS, Ubuntu 10.04, whatever Travis is running, Windows
7. It ought to work anywhere that Ruby works and the code compiles. I
haven't tested it on OS X yet, and it almost certainly won't work on
FreeBSD because the Interpreter doesn't compile there [1].

I still use the old shell scripts for the SqueakTrunk and
ReleaseSqueakTrunk jobs, but these could be replaced with Rake, simply
by running `rake release` instead of `rake test`.

frank

[1] http://build.squeak.org/job/SqueakTrunkOnInterpreterFreeBSD/18/console
shows an issue with libuuid (of course). This particular problem's
been solved on the Cog branch, but Eliot and I have yet to get Cog
compiling on FreeBSD (for other reasons).

Reply | Threaded
Open this post in threaded view
|

Re: Reimplementing CI with Rake: status report

David T. Lewis
On Wed, Mar 27, 2013 at 11:18:24AM +0000, Frank Shearar wrote:
>
> [1] http://build.squeak.org/job/SqueakTrunkOnInterpreterFreeBSD/18/console
> shows an issue with libuuid (of course). This particular problem's
> been solved on the Cog branch, but Eliot and I have yet to get Cog
> compiling on FreeBSD (for other reasons).

There is considerable background on the libuuid bug here:

  http://bugs.squeak.org/view.php?id=7358

Very likely your FreeBSD platform has the buggy library. If so, the problem
"goes away" if you compile the plugin internal. However, the resulting VM
will not work on another computer if the user does not have libuuid installed,
so this is not appropriate for officially distributed VMs.

Given that you are compiling a VM for your own use on your own server,
you can work around the library bug either by compiling the plugin internal,
or by simply deleting the external so.UUIDPlugin plugin after you compile it
(which is exactly what a typical user would need to do if s/he downloaded
an official VM and found that it crashed due to the libuuid bug).

I have not heard much about this bug recently, so hopefully the buggy
libraries are working their way out of the Linux ecosystem.

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Reimplementing CI with Rake: status report

Eliot Miranda-2
In reply to this post by Frank Shearar-3


On Wed, Mar 27, 2013 at 4:18 AM, Frank Shearar <[hidden email]> wrote:
I got fed up really quickly with writing shell scripts, so I started
an experiment to use Ruby's Rake to run tests.
https://travis-ci.org/frankshearar/squeak-ci/builds/5835209 shows the
latest build, which
* builds a custom Interpreter VM (because the CI runs on several
unsupported platforms - CentOS on build.squeak.org (unsupported
because it uses an ancient glibc) and Travis (unsupported because it's
an x86_64 platform)),

are you sure?  I build my Cog linux machines on CentOS 5.3.  The linux VMs run on 64-bit linuxes that have the 32-bit libraries installed (and they're easy to install)

 
* use Cog if available,
* prepare a test image (update the image under test, load the HudsonBuildTools),
* and then run a bunch of external packages on a copy of the updated image.

In particular, we run AndreasSystemProfiler, Control, FFI, Nebraska,
Nutcracker, OSProcess, Quaternion, Phexample, RoelTyper, SqueakCheck,
Universes, WebClient, XML-Parser and Zippers against each of Squeak
4.3, 4.4 and 4.5. You can run this same build script on multiple
platforms: CentOS, Ubuntu 10.04, whatever Travis is running, Windows
7. It ought to work anywhere that Ruby works and the code compiles. I
haven't tested it on OS X yet, and it almost certainly won't work on
FreeBSD because the Interpreter doesn't compile there [1].

I still use the old shell scripts for the SqueakTrunk and
ReleaseSqueakTrunk jobs, but these could be replaced with Rake, simply
by running `rake release` instead of `rake test`.

frank

[1] http://build.squeak.org/job/SqueakTrunkOnInterpreterFreeBSD/18/console
shows an issue with libuuid (of course). This particular problem's
been solved on the Cog branch, but Eliot and I have yet to get Cog
compiling on FreeBSD (for other reasons).

Yes, must find time to get back to this.  We need to find a FreeBSD kernel developer who understands the sigcontext issues.

--
best,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Reimplementing CI with Rake: status report

Frank Shearar-3
On 27 March 2013 17:22, Eliot Miranda <[hidden email]> wrote:

>
>
> On Wed, Mar 27, 2013 at 4:18 AM, Frank Shearar <[hidden email]>
> wrote:
>>
>> I got fed up really quickly with writing shell scripts, so I started
>> an experiment to use Ruby's Rake to run tests.
>> https://travis-ci.org/frankshearar/squeak-ci/builds/5835209 shows the
>> latest build, which
>> * builds a custom Interpreter VM (because the CI runs on several
>> unsupported platforms - CentOS on build.squeak.org (unsupported
>> because it uses an ancient glibc) and Travis (unsupported because it's
>> an x86_64 platform)),
>
>
> are you sure?  I build my Cog linux machines on CentOS 5.3.  The linux VMs
> run on 64-bit linuxes that have the 32-bit libraries installed (and they're
> easy to install)

Sorry for not being clear; yes, it's the libc6:i386 issue. Some
platforms - Heroku's, in particular - don't let you install the
necessary bits. Travis CI gives you a clean virtual machine that they
throw away, so they let you run as root. So it's as easy as "apt-get
install libc6:i386" to get things working there. The horror of Heroku
clouded my thinking.

And I stand corrected regarding CentOS. It's the official Interpreter
binaries that don't work on whatever version of CentOS
build.squeak.org, because they need 2.14 or 2.15 and build.squeak.org
uses 2.11.

frank

>> * use Cog if available,
>> * prepare a test image (update the image under test, load the
>> HudsonBuildTools),
>> * and then run a bunch of external packages on a copy of the updated
>> image.
>>
>> In particular, we run AndreasSystemProfiler, Control, FFI, Nebraska,
>> Nutcracker, OSProcess, Quaternion, Phexample, RoelTyper, SqueakCheck,
>> Universes, WebClient, XML-Parser and Zippers against each of Squeak
>> 4.3, 4.4 and 4.5. You can run this same build script on multiple
>> platforms: CentOS, Ubuntu 10.04, whatever Travis is running, Windows
>> 7. It ought to work anywhere that Ruby works and the code compiles. I
>> haven't tested it on OS X yet, and it almost certainly won't work on
>> FreeBSD because the Interpreter doesn't compile there [1].
>>
>> I still use the old shell scripts for the SqueakTrunk and
>> ReleaseSqueakTrunk jobs, but these could be replaced with Rake, simply
>> by running `rake release` instead of `rake test`.
>>
>> frank
>>
>> [1] http://build.squeak.org/job/SqueakTrunkOnInterpreterFreeBSD/18/console
>> shows an issue with libuuid (of course). This particular problem's
>> been solved on the Cog branch, but Eliot and I have yet to get Cog
>> compiling on FreeBSD (for other reasons).
>
>
> Yes, must find time to get back to this.  We need to find a FreeBSD kernel
> developer who understands the sigcontext issues.
>
> --
> best,
> Eliot
>
>
>