Jenkins – Enforcing one build for one commit in Jenkins/Hudson

hudsonJenkins

We use Jenkins for doing incremental builds of our project on each commit to the SCM. We would like to get separate builds for every single commit. However, the naive approach (setup SCM and use post-commit hooks to trigger a build) exhibits problem in the following scenario:

  • Build is triggered.
  • While build takes place (it can take up to several minutes) two separate commits to the SCM are made by two developers.
  • One new build is triggered. It receives changes from both of the commits, made during previous build.

This "race condition" complicates finding which one of the commits has broken the build/introduced warnings.

The currently employed solution is checking for changes in one job ("scheduler job") and triggering another job to do the actual checkout and build.

Are there any proper solutions to this problem?

Best Answer

Not yet, there's a Feature Request covering this kind of build, but it's still open: Issue 673

Related Topic