Information Technology Reference
In-Depth Information
is available from one primary location. A version control repository
allows you to go back in time and get different versions of source code
and other files.
You run CI against the mainline of the version control repository
(e.g., the Head/Trunk in systems like CVS and Subversion). There are
different types of version control systems you can use too. We use
Subversion for most of the examples in the topic because of its feature
set—and it's freely available. Other Software Configuration Manage-
ment (SCM)/version control tools include CVS, Perforce, PVCS,
ClearCase, MKS, and Visual SourceSafe. To learn effective techniques
of software configuration management, see Software Configuration
Management Patterns by Stephen Berczuk and Brad Appleton.
CI Server
A CI server runs an integration build whenever a change is committed
to the version control repository. Typically, you will configure the CI
server to check for changes in a version control repository every few
minutes or so. The CI server will retrieve the source files and run a
build script or scripts. CI servers can also be hard-scheduled to build
on a regular frequency, such as every hour (but note that this is not CI).
In addition, CI servers usually provide a convenient dashboard where
build results are published. Although it is recommended, a CI server
isn't required to perform continuous integration. You can write your
own custom scripts. Moreover, you can manually run an integration
build whenever a change is applied to the repository. Using a CI
server 2 can reduce the number of custom scripts that you would other-
wise need to write. Many CI servers are freely available and open
source. Listing 1-3 shows an example of using the CruiseControl con-
fig.xml to poll a Subversion repository looking for changes.
LISTING 1-3
CruiseControl config.xml Polling Subversion Repository
<project name="brewery" >
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
2. For more information on CI servers, see Appendix B.
Search WWH ::




Custom Search