I'd like to setup some auto-builders for some projects - and theese projects must be built upon Lenny, Squeeze, Lucid, and multiple other distros. (i386 and amd64 obviously.)
Looking around I figure it should be simple. There are a lot of continuous integration tools out there - but when looking at them in depth it seems like they all work in temporary directories and are a little different to how I'd expect them to be.
Ultimately I want to point a tool at a repository (mercurial), and receive a status report and a bunch of .deb packages for a number of distributions.
The alternative seems to be to write a simple queue submission system, then for each job popped from the queue run:
- Creates a new debootstrap-based chroot.
- Installs build-essential, mercurial, etc.
- Fetches the shource.
- Runs make.
- Copies the files produced in ./binary-out/ to a safe location.
- Cleans up.
Surely this wheel must already exist? I guess its a given that we have to find build-dependencies, and that we cannot just run "pbuilder *.dsc" - as the dsc doesn't exist in advance. We really need to run "make dependencies test build", or similar.
Hudson looked promising, but it builds things into /var/lib/hudson, and doesn't seem to support the use of either chroots or schroots.
ObQuote: "I feel like I should get you another sweater." - "Friends"
http://www.asheesh.org/
With Hudson, you can just add a few build steps as shell commands:
1. Create the chroot and install dependencies
2. Bind-mount /var/lib/hudson into there
3. Write "chroot /chroot/X" before your other build steps, so they run in the chroot
4. Un-bind-mount /var/lib/hudson
Then your resulting files will still be in /var/lib/hudson where Hudson expects them, so its built-in way to expose successful build result files (e.g. *.deb) should work fine.
This is kind of like how pbuilder works. I think this would be reasonably easy.
Let me know what exactly you've tried, and I can try to be more helpful. I run a few Hudson/Jenkins instances, and I've found the web interface to be a pleasure, by and large.