Skip to content

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 VALUES
values:
- android
- unity
# PLUGINS
plugins:
- name: BuildPlugins.ProjectVersioning
# PIPELINE STEPS
steps:
- name: Project Versioning
run:
stepId: VersioningStep
- name: Run Editor Tests
run:
script: ./BuildPipeline/scripts/run_unity_tests_step

values

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.CreatePlatformConfig

steps

The ordered list of operations the pipeline executes. Each step can run either a Build Plugin Step or a Script Step.

Step properties

PropertyRequiredDescription
nameYesDisplay name rendered in the Build Server UI
allowToFailNoIf true, the pipeline continues even if this step fails (default: false)
runYesWhat to execute — either stepId (Build Plugin) or script (file path)
teardownNoCleanup 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