.. toctree:: :hidden: :maxdepth: 2 common source_common source_bzr source_cvs source_darcs source_gerrit source_github source_gitlab source_git source_mercurial source_monotone source_p4 source_repo source_svn gitcommit gittag gitpush git_diffinfo shell_command shell_sequence compile configure cmake visual_cxx cppcheck robocopy test treesize perl_module_test subunit_shell_command hlint maxq trigger build_epydoc pyflakes sphinx pylint trial remove_pycs http_step worker_filesystem file_transfer master_shell_command log_renderable assert set_property set_properties set_property_from_command set_properties_from_env rpm_build rpm_lint mock_build_srpm mock_rebuild deb_pbuilder deb_lintian
:class:`BuildStep`s are usually specified in the buildmaster's configuration file, in a list that given to a :class:`BuildFactory`. The :class:`BuildStep` instances in this list are used as templates to construct new independent copies for each build (so that state can be kept on the :class:`BuildStep` in one build without affecting a later build). Each :class:`BuildFactory` can be created with a list of steps, or the factory can be created empty and then steps added to it using the :meth:`addStep` method:
from buildbot.plugins import util, steps
f = util.BuildFactory()
f.addSteps([
steps.SVN(repourl="http://svn.example.org/Trunk/"),
steps.ShellCommand(command=["make", "all"]),
steps.ShellCommand(command=["make", "test"])
])
The basic behavior for a :class:`BuildStep` is to:
- run for a while, then stop
- possibly invoke some RemoteCommands on the attached worker
- possibly produce a set of log files
- finish with a status described by one of four values defined in :mod:`buildbot.process.results`:
SUCCESS
,WARNINGS
,FAILURE
,SKIPPED
- provide a list of short strings to describe the step
The rest of this section describes all the standard :class:`BuildStep` objects available for use in a :class:`Build`, and the parameters that can be used to control each. A full list of build steps is available in the :bb:index:`step`.
The following build steps are available:
Source checkout steps - used to checkout the source code
Other source-related steps - used to perform non-checkout source operations
ShellCommand steps - used to perform various shell-based operations
- :ref:`Step-ShellCommand`
- :ref:`Step-ShellSequence`
- :ref:`Step-Compile`
- :ref:`Step-Configure`
- :ref:`Step-CMake`
- :ref:`Step-VisualCxx` (
VC<...>
,VS<...>
,VCExpress9
,MsBuild<...
) - :ref:`Step-Cppcheck`
- :ref:`Step-Robocopy`
- :ref:`Step-Test`
- :ref:`Step-TreeSize`
- :ref:`Step-PerlModuleTest`
- :ref:`Step-SubunitShellCommand`
- :ref:`Step-HLint`
- :ref:`Step-MaxQ`
:ref:`Step-Trigger` - triggering other builds
Python build steps - used to perform Python-related build operations
Debian build steps - used to build
deb
packages- :ref:`Step-DebPbuilder`, DebCowBuilder
- :ref:`Step-DebLintian`
RPM build steps - used to build
rpm
packages:ref:`Step-FileTransfer` - used to perform file transfer operations
- FileUpload
- FileDownload
- DirectoryUpload
- MultipleFileUpload
- StringDownload
- JSONStringDownload
- JSONPropertiesDownload
:ref:`Step-HTTPStep` - used to perform HTTP requests
- HTTPStep
- POST
- GET
- PUT
- DELETE
- HEAD
- OPTIONS
:ref:`Worker-Filesystem-Steps` - used to perform filesystem operations on the worker
- FileExists
- CopyDirectory
- RemoveDirectory
- MakeDirectory
Master steps - used to perform operations on the build master
- :ref:`Step-MasterShellCommand`
- :ref:`Step-SetProperty`
- :ref:`Step-SetProperties`
- :ref:`Step-SetPropertyFromCommand`
- :ref:`Step-SetPropertiesFromEnv`
- :ref:`Step-LogRenderable` - used to log a renderable property for debugging
- :ref:`Step-Assert` - used to terminate build depending on condition