Ans)
Continuous Integration is a software development
practice where members of a team integrate
their work
(Code) frequently, usually each person integrates at least daily -
leading to multiple
integrations per day. By having
scheduled automated builds we can determine if are there any
integration issues , also by running the Unit Testcases as
part of these builds and verify
if is the existing
functionality is broken. Automated tools such as CruiseControl,
Jenkins,
Hudson, Bamboo, BuildMaster, AnthillPro or
Teamcity offer this scheduling automatically.
Here are the principles of
"Continuous Integration"
Maintain a code repository :
Code should be maintained in a Version Control such as
CVS,SVN,VSS,ClearCase etc., which could allow
multiple
developers to work collaboratively in parallel by Versioning the
Files (code).
Automate the build :
Should
Have scheduled automated builds by using the tools like
"Hudson,TeamCity, CruiseControl" etc.,
which could automatically checkout(Get) the code from Code
Repository and build.
Make the build self-testing :
During the build process, after compiling the code we can make
the Code Self-Testing by
executing the Unit Test cases
such as JUNIT or Cactus or EasyMock etc. and confirms that
nothings is broken.
Automate deployment :
Once
build and self-testing process is done, we should have automated
Deployments.
Tools such as "Hudson,TeamCity,
CruiseControl" do complete "Continuous
Integation" for you,
but you have to have some
build script such as ANT or MAVEN scripts to perform some of these
Tasks.
Here is the sequence of tasks that could be done by
above tools.
i) Having Scheduled Builds. (Daily or
Hours)
i) Checkout the code.
ii) Compile the
Code.
iii) Running Unit Test-Casess.
iv) FTP
code to different hosts
v) Deploy the artifacts.
Back to top