[OpenAFS-devel] hudson success (i.e. automatically building)

Marcus Watts mdw@umich.edu
Mon, 12 Jul 2010 23:33:45 -0400


> Date:    Mon, 12 Jul 2010 19:43:33 EDT
> To:      openafs-devel@openafs.org
> From:    Jason Edgecombe <jason@rampaginggeek.com>
> Subject: [OpenAFS-devel] hudson success (i.e. automatically building)
> 
> Hi everyone,
> 
> First, I'd like to apologize for posting broken URL's into gerrit, but 
> on a good note, I have the hudson continuous integration server 
> <http://hudson-ci.org/> working!
> 
> Currently, I have two jobs set up. One just builds the openafs git repo 
> after each commit. The other integrates with gerrit, builds a change, 
> and verifies each new change.
> 
> The hudson machine is running Debian Lenny on i386 and building with the 
> command "sh regen.sh && ./configure && make"
> 
> There are a few of caveats:
> 1. I haven't seen a gerrit build failure, so I'm not convinced that it's 
> really working yet.
> 2. It builds all changes, regardless of the author or approvers.
> 3. This is running in a VirtualBox VM on my personal laptop.
> 
> So, now I will ask, "What now?"
> 
> BTW, I unsuccessfully tried buildbot for a few hours, but hudson was a 
> breeze to set up in only an hour or so.
> 
> Sincerely,
> Jason

Sounds like you're making really nice progress.

I think it would be useful to try several alternate configurations,
including:
1.	no kernel - no cache manager
2.	current kernel - presumably you're doing this now.
3.	other "older" 2.6 kernels.  There are a lot of
		tests for kernel features.  Older kernels will
		catch the "other" case for those feature tests.
5.	linux 2.4 kernel?  (but you may need older compiler & other
	weirdness.)
4.	build "out of tree".
5.	configure-libafs build.

For the various cache managers you get, it's also useful to do some sanity
checking -- like, does it reference any new external symbols, and does
the kernel in question export those symbols?  Failures in the kernel
build tests are likely to wind up referencing symbols that don't exist.

Other variations:
heimdal vs. MIT. (vs. neither).

--enable-demand-attach
--enable-disconnected
etc.

Also useful,
amd64 vs. i386 build.
useful, but harder:
solaris x86 build
openbsd x86 build
useful too, but even harder:
hpux, aix, etc.

So how much support does hudson have for testing something (as opposed
to merely building it)?  Does it have anything special to deal with
running multiple builds, perhaps on separate machines, in parallel?

					-Marcus