Today I attended an excellent presentation by Denali Lumma at the Selenium SF meetup. Especially pleasant for me was an “Aha!, I told you so” moment when she described Okta Continuous Integration setup that relied on Git Top Branches and Selective testing. When I ran CI for the Google Checkout project, the lowest point of the day was always the “5 checkins went in and the build is broken in non-obvious ways” — time to selectively do a local rollback of each changelist to figure out who broke it. Meanwhile the VCS was locked down. Ouch that hurts! After some time we implemented something we call a Submit Queue which allowed a single changelist to be merged with trunk in a temporary workspace and tests executed on it before it was committed. Some commercial CI servers provide this sort of pre-submit testing. Okta has implemented the same solution using Jenkins and Git Topic Branches — brilliant! Additionally, they have an automated script that does intelligent test selection based on real-time customer usage of system components — double brilliant! Finally, they also scripted the configuration and deployment of the Jenkins server. I confess that I don’t quite understand the context in which they had this need, but I am sure its likewise brilliant.
Archive for January, 2012