What is the difference between a build and deploy
and re-deploy
?
What should be done when you just have some
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 deployment. Meaning compile, generate code, package, etc.
That helped? 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.
Watch this deploying process:
------ Build started: Project: AdventureWorks, Configuration: Release ------
Skipping 'belyaev_db.rds'. Item is up to date.
Skipping 'Sales Rep.rdl'. Item is up to date.
Skipping 'Top_10.rsd'. Item is up to date.
Build complete -- 0 errors, 0 warnings
------ Deploy started: Project: AdventureWorks, Configuration: Release ------
Deploying to http://...
Deploying data source '/Data Sources/belyaev_db'.
Warning : ...
Deploying data set '/Datasets/Top_10'.
Warning : ...
Error ...
Deploy complete -- 1 errors, 2 warnings
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========
In this case I have some issues but as you can see - first step is in building - verification data sources and reports and only after that - deploying.
Build and Deployment are Back To Back Processes! Build can be taken Only if there is any JAVA Code Change. For only HTML or CSS file updates, no need of New Build. The Property files change needs the Server Restart.
No need of Deploying Unchanged Build ear/tar file.
For updated ear Build, Deployment on Server process should be initiated.
Build means to Compile the project.
Deploy means to Compile the project & Publish the output
For web applications no need to deploy or nothing need to do at client side except simple browser with url. all web applications are deployed at Server Machine(IIS) only, that application can be accessed by all client machines (any browser is enough).
For Desktop applications Wherever you want to use the application, need to deployed/installed in that system.