Git, Feature Branches, and Jenkins – or how I learned to stop worrying about broken builds

I mentioned in my last post how we have started using Feature Branches with Git and Jenkins. In that, I rather casually mentioned that

“The build server uses the Git plugin for Jenkins to monitor all the branches on the local repository. Whenever a developer pushes to the repository, Jenkins will see the change and try to merge it into the stable branch. If the build passes, the merge is committed. If it doesn’t pass, the FeatureBranch doesn’t get merged – and it will stay unmerged until another change is made against it.”

This feature means that broken builds have almost no impact on team productivity. In fact – it can even be more productive to allow a broken build than to try to prevent it all the time.

Continue reading “Git, Feature Branches, and Jenkins – or how I learned to stop worrying about broken builds”

Build servers are for more than just building

Using a build server (such as CruiseControl doesn’t mean developers shouldn’t run local builds (even though broken builds aren’t really as serious as a lot of people make them out to be). So this raises the question: if developers run their build locally, what’s the build server for?
Continue reading “Build servers are for more than just building”

Does it really matter if the build is broken?

Andy Marks recently posted a dissection of various categories of build failures. In general, I agree that there are definitely different severities of build failures. The question is: is there a time when a build failure is not important?

Continue reading “Does it really matter if the build is broken?”