Before moving in to the today's topic I would like to explains the typical scenario of the software development with out using continuous integration. Suppose that your project team is using a source controller where you save all source files in a shared location for the collaborative development process. How it works is simply a developer implements a feature of your product and then do the testing on developer's environment. If the testing is successful he/she push the new changes in to the source controller. Following diagram explains it briefly.
Solution for this issue is to introduce a third party built environment which is isolated from developers' specific setting. It should be an environment which user its own configurations (eg : database configurations)
Following are few of available build servers in today's software industry.
http://hudson-ci.org/
http://jenkins-ci.org/
In my next blog posts I will use jenkins server for explanations.
Followings are the basic tasks which we expect from the build server side to make a end to end Continuous Integration.
- Get the latest updates from source controller and run all unit tests/UI tests(Selenium)
- If the tests are successful then automate the deployment process. There can be multiple deployments take place.Eg: Live deployment,Production deployment
- Create a package which can deploy on your web container and save it with the version.Simple its like keeping working copies of software packages for each working changes.
No comments:
Post a Comment