Within steps there are several features available to control execution
flow within a project:
- Inline: Use the Inline property of a step to specify a
project or library. The steps of the project or library are run inline
immediately after the command for this step. The steps for the inlined
project or library are indented in the step log.
- Pass and fail chains: a step can have its own Pass Chain
and Fail Chain distinct from the chains specified for the project.
- Threading: You can run steps marked for threading in parallel.
Use the Thread property of a step to mark it for threading.
- Broadcasting: You can run steps marked for broadcasting
on multiple servers. Use the Broadcast property of a step.
- Conditional: You can set a step to run only if a condition
is true. You can set an alternate set of commands and an inline project
or library to run if the condition is false. Set the Step Type property
to conditional and use the related Condition and Else properties to
use this feature.
- While loop: You can run a step in a loop each time a condition
is evaluated as true. Set the Step Type property to While Loop and
use the related properties to use this feature.
- Dot commands: The .run and .runwait commands launch a library
or project from the command for a step.
A common use of complex execution flow is job optimization,
that is, executing steps only where needed.
In a software build engineering environment, job optimization can
mean building only parts of an application as needed rather than the
entire application. A job can check the source status against the
last-compiled binaries and run a compile only if there have been source
changes. For complex applications, execution flow can respond to module
dependencies as well as source status.