This is the original and still most popular Scheduler class. It follows
exactly one branch, and starts a configurable tree-stable-timer after
each change on that branch. When the timer expires, it starts a build
on some set of Builders. The Scheduler accepts a fileIsImportant
function which can be used to ignore some Changes if they do not
affect any “important” files.
The arguments to this scheduler are:
name
builderNames
properties
treeStableTimer
If treeStableTimer is None
, then a separate build is started
immediately for each Change.
fileIsImportant
True
if the change is worth building, and False
if
it is not. Unimportant Changes are accumulated until the build is
triggered by an important change. The default value of None means
that all Changes are important.
change_filter
fileIsImportant
: if the
change filter filters out a Change, then it is completely ignored by the
scheduler. If a Change is allowed by the change filter, but is deemed
unimportant, then it will not cause builds to start, but will be remembered and
shown in status displays.
categories (deprecated; use change_filter)
branch (deprecated; use change_filter)
branch
equal to
the special value of None
means it should only pay attention to the
default branch. Note that None
is a keyword, not a string, so you want
to use None
and not "None"
.
Example:
from buildbot.schedulers.basic import Scheduler quick = Scheduler(name="quick", branch=None, treeStableTimer=60, builderNames=["quick-linux", "quick-netbsd"]) full = Scheduler(name="full", branch=None, treeStableTimer=5*60, builderNames=["full-linux", "full-netbsd", "full-OSX"]) c['schedulers'] = [quick, full]
In this example, the two “quick” builders are triggered 60 seconds after the tree has been changed. The “full” builds do not run quite so quickly (they wait 5 minutes), so hopefully if the quick builds fail due to a missing file or really simple typo, the developer can discover and fix the problem before the full builds are started. Both Schedulers only pay attention to the default branch: any changes on other branches are ignored by these Schedulers. Each Scheduler triggers a different set of Builders, referenced by name.