Question

I might be missing something but I do not get why in the commonly described worklow the Build follows the Code phases. I mean, isn't it the other way around? We code, we integrate the changes, build it, test it..

The picture is for example on the site below:

http://www.bmc.com/blogs/continuous-delivery-continuous-deployment-continuous-integration-whats-difference/

Was it helpful?

Solution

I write some code, then I build it (compile it) then I run the tests. This happens on my local machine. That's the "code & build" phase in that diagram.

Then I check my code in to a central repository, triggering a remote build and remote testing. I have now performed a "doesn't just work on my machine" test. I've "integrated" my code into a central repository, thus it's the "integration" phase.

Ultimately though, a lot of this is just semantics. A great many IT processes still refer to the entire "code, compile, test, repeat" cycle as "build". The diagram you link to doesn't show testing on the local machine, nor does it show "build" on the build server.

So take such diagrams with a pinch of salt and don't lose sleep over them. If you feel you are "missing something" when looking at such a diagram, just remember that it'll likely boil down to you using a slightly different semantic model to describe such things to what the author has used.

OTHER TIPS

This depends on what kind of system one has in mind, and what "integrate" means in that system. When talking about continous deployment and delivery, the 99% scenario are web application systems. Depending on used languages and architecture, there may be compilable components which have to be build first before they can get integrated into the web application. The integration step then contains putting them in the right place on the web server, as well as an integration test.

Licensed under: CC-BY-SA with attribution
scroll top