Information Technology Reference
In-Depth Information
Project Management System and another in CVS called Financial
Management System. If there is a change to the Financial Manage-
ment System, the Project Management System must be built because it
uses an API in the Financial Management System. Your CI server
should provide the capability for build dependencies. This forces a
build to occur on one project based on the initiation of a build on
another project.
“Our project is separated geographically, so how can we
practice CI?”
Do you have development teams working at remote locations finding it
difficult to practice CI? This may occur because of slow network con-
nectivity or high security to protect intellectual property. Most CI serv-
ers include the capability to use project dependencies. Imagine a
project in Virginia that is developing a software product that has “spe-
cial sauce” algorithms, and a development group in California respon-
sible for developing other components for the product. The company
uses a CVS version control repository in Virginia, which contains the
special algorithms. In addition, it establishes a new subversion reposi-
tory in California. The technical lead in Virginia configures the Cruise-
Control CI server to support two projects: one project in Virginia and
the other in California. Before an integration build is successfully exe-
cuted for the team in California, the CI server kicks off the project in
Virginia. This will only work, however, if components are decoupled
well.
“My integration builds are taking too long!”
See the Run Fast Builds section, earlier in this chapter.
“We frequently get build failures. Are we doing something
wrong?”
Yes, you're committing code that doesn't work! It could be that your
code is not compiling, your tests or inspections are failing, or your
database scripts are generating errors. One way to solve this problem is
to run a private build (see Chapter 2) to emulate the integration envi-
ronment as much as possible on development machines before com-
mitting changes to the version control repository. This means that each
Search WWH ::




Custom Search