Difference between build and deploy?

Disclaimer: Defining what build and deploy means is very subjective.


I will start with deploy. Deploy should mean take all of my artifacts and either copy them to a server, or execute them on a server. It should truly be a simple process.

Build means,process all of my code/artifacts and prepare them for deploment. Meaning compile, generate code, package, etc.

That help? Some people do consider deploy as part of the “build process” which I don’t really argue with because generally in order to test or run you have to deploy it somewhere


The rule is generally if it is dynamic code, then you need to do a build/redeploy.

If you are just editing static html, css, images etc.then you can simply just patch (and preferably a server restart).


As always when “patching” there is added risk that you could not be deploying the entire code base, or someone could do it wrong.

Personally I like doing full build/redeploys because you always know you are in-sync with your source control. However there is always risk that deployments go bad, either the build part or the install part. If your builds take a long time, or you are unnecessarily having to deploy a lot of moving parts, then consider either breaking them down into smaller deployable components or create a more complete deployment plan.

As usual there is no silver bullet here.

http://stackoverflow.com/questions/6427679/difference-between-build-and-deploy