Pipeline Definition
The pipeline definition is a YAML configuration file that specifies which steps to run, in what order, along with the values and plugin dependencies needed. It is the file the Pipeline Runner reads to understand the full build sequence.
Structure
A pipeline definition has three sections:
# PIPELINE VALUESvalues: - android - unity
# PLUGINSplugins: - name: BuildPlugins.ProjectVersioning
# PIPELINE STEPSsteps: - name: Project Versioning run: stepId: VersioningStep - name: Run Editor Tests run: script: ./BuildPipeline/scripts/run_unity_tests_stepvalues
References to YAML value files that provide configuration data to build steps. See Communication Between Steps for details.
plugins
The Build Plugin NuGet packages used in this pipeline. These can reference dependencies defined in nuget.yml or use grouped dependencies inline.
plugins: - name: BuildPlugins.ProjectVersioning - name: BuildPlugins.CreatePlatformConfigsteps
The ordered list of operations the pipeline executes. Each step can run either a Build Plugin Step or a Script Step.
Step properties
| Property | Required | Description |
|---|---|---|
name | Yes | Display name rendered in the Build Server UI |
allowToFail | No | If true, the pipeline continues even if this step fails (default: false) |
run | Yes | What to execute — either stepId (Build Plugin) or script (file path) |
teardown | No | Cleanup script or Build Plugin teardown to run when the pipeline finishes |
steps: - name: "Build and Test" run: script: "scripts/build-and-test" teardown: script: "scripts/cleanup" - name: "Deploy" allowToFail: true run: stepId: "DeployStep"Because the pipeline is defined as a configuration of individual steps, you can:
- Render the full build sequence up front in the UI
- Skip any step without special flags
- Create custom pipelines by rearranging available steps