Recipes
A recipe is a sequence of commands used to build a project. Recipes are defined in the pulse™ file and then referenced when defining build specifications in the web interface. Each pulse file project will have at least one recipe defining how that project is built. Commonly, projects will have multiple recipes for different types of builds (e.g. continous testing builds, nightly packaging builds).
Recipes contain nested properties, resource references and commands. Resource references are used to introduce properties from a named resource. Finally, the commands nested in the recipe will be executed in the sequence they are found when the recipe is executed.
Attributes
| Attribute |
Description |
Required? |
Default |
| name |
The name of the recipe (referenced in build specifications). |
Yes |
|
Child Elements
| Element |
Description |
Number |
| ant |
Defines a command for running Apache Ant. |
0 or more |
| command |
Defines a command with artifacts to be captured. |
0 or more |
| executable |
Defines a command for running arbitrary binaries. |
0 or more |
| make |
Defines a command for running make. |
0 or more |
| maven |
Defines a command for running Apache Maven version 1 |
0 or more |
| maven2 |
Defines a command for running Apache Maven version 2 |
0 or more |
| resource |
A reference to a resource, used to introduce properties from that resource. |
0 or more |
| sleep |
Pause for a specified interval. |
0 or more |
| xcodebuild |
Defines a command for running xcode's xcodebuild binary |
0 or more |
Examples
A trivial recipe that execute a single make command:
<recipe name="default">
<make name="build" targets="clean all"/>
</recipe>
A recipe that executes a build, then packages the results with a script:
<recipe name="build-packages">
<ant name="build" targets="build-all"/>
<executable name="package" exe="bin/scripts/make-packages.sh"/>
</recipe>
A recipe that requires GCC version 3.2:
<recipe name="default">
<resource name="gcc" version="3.2"/>
<make name="build" args="CC=${gcc.bin}" targets="clean all"/>
</recipe>
The "gcc" resource must be defined on the server with version "3.2", else this recipe will fail. The example assumes that the resource defines the property "gcc.bin". For more information about resources, refer to the Resources page.