Mercurial > hg > autobot
changeset 208:2d5b78d3411c
explain how sources work
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Fri, 04 Feb 2011 17:14:46 -0800 |
parents | dc56c0de73bc |
children | 98e3594f2928 |
files | README.txt |
diffstat | 1 files changed, 34 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/README.txt Fri Feb 04 08:30:53 2011 -0800 +++ b/README.txt Fri Feb 04 17:14:46 2011 -0800 @@ -181,6 +181,40 @@ to see this location). +Sources +------- + +``autobot.process.factory:SourceFactory`` is an abstract base class +for specifying sources. Sources live as a member on the instance, named +(oddly) ``sources``. This is a dict with the key being the source +type and the value being the source to use. Source types are +currently "git" and "hg", though this is easily extensible. + +Internally, an individual source is stored as a 2-tuple with the first +item being the URL of the source and the second item being the +branch. If the branch is ``None`` or not specified, this is assumed +to equate to ``master`` for git or ``default`` for hg. However, you +may also use a string in the form of ``URL#branch``. In addition, you +may specify a whitespace separated source, which ``SourceFactory`` +will split into a list of sources. So all of these translate into the +same source:: + + sources = {'hg': 'http://hg.mozilla.org/automation/logparser'} + + sources = {'hg': ['http://hg.mozilla.org/automation/logparser#default']} + + sources = {'hg': [('http://hg.mozilla.org/automation/logparser', None)] + +The generated ``master.cfg`` polls for changes on the given source, +then uses ``buildbot.schedulers.filter:Changefilter`` in conjunction +with a ``Scheduler`` to trigger the appropriate builds. + +While, in general, the canonical sources should be specified at the +class level, if an appropriate argument (e.g. *hg* or *git*) is passed +in to the ``SourceFactory`` constructor, this will override that +source type. This is useful for testing changes on non-canonical URLs +and/or branches. + Adding a New Project --------------------