info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Continuous Integration and CVS


From: benrady
Subject: Continuous Integration and CVS
Date: 25 Apr 2006 19:18:15 -0700
User-agent: G2/0.2

At my company, we're currently deploying a continuous integration based
build system called AnthillPro, and we're having some disagreement as
to best practices.

With our old build process, when we wanted to release, we first created
a tag using 'cvs rtag'. We then checked that tag out, built it, tested
it, and (optionally) shipped it. However, Anthill has no built in
support for this process, so to do it that way will require more work.

The way Anthill works is it periodically checks for changes in the CVS
repository, and if it detects one, it does a fresh checkout and
rebuilds the system from scratch. If the build succeeds, it creates a
tag using 'cvs tag' and a generated build number, and publishes all of
the build artifacts (the documentation, the installer, etc...) to an
internal website for testing. If the testing goes well, we can ship it.


The big point of contention right now is whether or not it's ok to
create the build artifacts before creating the tag. Some developers
contend that all releases should be built from an existing tag. They
argue that we should retag the tag that Anthill creates using 'cvs
rtag', and rebuild the product using that rtag to ensure that what we
ship is exactly what we tagged. If that means we have to do a little
extra work, then so be it.

On the other hand, some developers say that since Anthill is doing a
fresh checkout, all of the files that it checks out will have revisions
in CVS. Therefore, if Anthill creates a tag from it's working directory
using 'cvs tag', the build artifacts created from the build can be
perfectly reproduced by checking out that tag.

The debate is getting pretty heated (over what seems to be a minor
detail). Any opinion or guidance on this issue would be much
appreciated.

Thanks,
Ben Rady



reply via email to

[Prev in Thread] Current Thread [Next in Thread]