So I have set this up now: http://pgci.eisentraut.org/jenkins/
It's already been very helpful during the last couple of weeks that I've run this. The main point behind the effort is to automate things. These are things I do just about every day and won't have to anymore:
- build PostgreSQL
- check for compiler warnings
- run various test suites
- do this for all supported branches
- check distribution building (
make distcheck
) - test build of additional documentation formats
cpluspluscheck
- check external web links in the documentation (The job for that currently appears to be reporting false positives. Use with caution.)
- test coverage reporting
Actually, many of the checks I had set up immediately found problems: newly introduced compiler warnings, secondary documentation format builds broken, cpluspluscheck failing, broken links in the HTML documentation, various extensions no longer build with Postg reSQL 9.3devel.
But there is more cool stuff:
- There are various RSS feeds for all builds or failed buids.
- You can interact with the system on mobile devices. I use JenkinsMobi for iOS.
- You can get up to date documentation builds on a more predictable schedule.
The one thing (just about) it doesn't do is test operating system and CPU architecture portability. Jenkins comes from a Java background, where this isn't much of an issue, and so there isn't good built-in support for that sort of thing. But anyway, we have the build farm for that.
You can get the code at http://bitbucket.org/petere/pgci. The entire setup is automated with Puppet. You can fork it and set up your own (or send me your changes), or you can run it locally using Vagrant (which is what I do to test changes).
If you have any ideas, let me know (file an issue on Bitbucket). I have plans for a number of enhancements already, foremost pg_upgrade testing. Also, let me know if there are additional extensions you want tested. I have just put in a few I use myself at the moment, but other can easily be added.
Happy New Year!