Professional Documents
Culture Documents
CI is an integral part of an agile software development setup. For every sprint, the
developer needs to deliver incremental features while focusing on the addition of new
features and handling code errors that creep in and render the software unusable. To
stop such errors from being integrated into the software configuration management
(SCM), a CI server acts as a gatekeeper that helps keep a tab on code quality. A CI server
performs an automated build that includes testing, reporting, and other actions each
time the code base changes. The above activities are performed using different CI
servers like Jenkins, Mojo, Hudson, QuickBuild, CruiseControl, Buildbot, etc. Some tools
like Puppet and Chef can also help with scripting the provisioning of new environments
and in creating additional CI server instances.
http://gallop.net/
Lack of Proper Maintenance of Test Servers: If you are performing integration tests,
you may also have a set of test servers in which you deploy built artifacts like WARs,
JARs, and SARs, and execute your integration tests. Thus test servers play an important
role in implementing CI.
Broken Builds: The goal is that the application must be ready to be built, packaged, and
deployed on every committed change. It means that broken or untested code should
never be committed. Moreover, a code that is production ready, should be managed by
strict version control policies and the development team must practice agile
development and unit testing, further leading to a better and CI environment.
Strict Organizational Policies: Certain organizations still follow rigid rules with certain
internal policies wherein manual approvals and documentation is required before
software is deployed into production. This might act in the way of successful CI
implementation.
http://gallop.net/
Other factors like the type of CI server plugins installed, the storage of credentials such
that CI server can access the source version control can also impact the CI integrations.
In order to attain CI, a perfect version control methodology needs to be followed along
with taking up a build automation and dependency management strategy. Last but not
the least in order to achieve the goal of continuous delivery, it is very important to draw
a continuous integration methodology.
Buildbot: It is built based on twisted framework and a Python configuration script that
needs to be provided to the master for Buildbot configuration. It is highly useful for
mixed language applications or complex release tasks and allows installation to grow
with your requirements.
Travis CI: This is one of the simplest CI server to get started, and is available as open
source and free to host on your server. It is easy to link your Github account after
providing relevant permissions.
Go: It helps distribute builds across different systems and monitor them all at one place.
It is easy to perform regular tasks as they are added as pipelines.
Strider: It is written in Java and JavaScript and uses MongoDB as backing store. Strider is
extremely customizable through plugins.
http://gallop.net/
http://gallop.net/