Continuous Integration – Build on Each Commit with Continuous Delivery

continuous integrationJenkinsversion control

Just watched a video about continous delivery and there it was suggested to trigger a build and execute unit test on each commit.
For our team of 10 developers and a build time of at least 10 minues I wonder how this will work as in 1 hour, all developers might deliver something ==> we might end up having multiple ongoing builds simultaneously.

Would that be ok ? Is that a good practice ?

Currently the build is triggered manually on demand.

Best Answer

Most, if not all CI platforms limit you to a single build per project/branch.

If your developers are working on separate branches, then you may indeed have concurrent isolated builds. This may cause a backup at the CI server, but it can be resolved by adding more slave machines to run the builds.

If they're working on the same branch, then the builds will happen one after another, one per commit. If you commit too frequently for the CI server to keep up, this may be a problem, although you could replace the commit-based triggering with time-based triggering.

BUT, if you're following good development practices, and the developers merge changes and run unit tests prior to commit, then the time taken by the developers should (over the long run) match that of the CI build machines.

If your developers are making changes in very different parts of the codebase, then a followup step is to break the project into multiple sub-projects (libraries) and edit/test/build them independently.

Related Topic