Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Secure autobuilder with support for multiple build images and SCCS types
Shell
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autobuilder
cgi-bin
clients
hooks
images
testing
xslt
GNUmakefile
README

README

Hephaestus
----------

Everything's kicked off by a post-checkin hook. Currently, we only support 
centralized source control systems mapping transactions to ordinals, ie
Subversion. The post-checkin hook can be found in the svnhooks repository.
It calls schedule_build with the repository and revision as arguments -- this
operation doesn't lock against hephaestus, nor does it perform any meaningful
I/O or computation, so commits aren't made any more latent.

Within the hephaestus working directory, there's a commits/ directory,
containing a subdirectory per repository. schedule_build creates an empty file
in the appropriate directory, using the revision number for its name (thus
avoiding the need to lock in hook context). If hephaestus is down, these
build requests will simply accumulate, to be run in batch when it comes up and
claims them. At some point, a hephaestus process running on some machine
(usually locally, but an sshfs would work just fine) will begin watching this
commits/ directory.

When hephaestus notices build requests, it serially iterates over them,
converting them to an XML representation (see the Relax-NG schema at
hephaestus.rng) and appending these entities to the itinerary file. This
itinerary should always validate successfully against the Relax-NG schema. In
addition, hephaestus generates a commit notification for each revision,
containing the svn diff output and links to WebSVN/ViewVC; these are posted to
the appropriate newsgroup, and the Message-ID of the commit notification is
saved in XML for automated followups.
Something went wrong with that request. Please try again.