Pipelines drive the continuous aspect of Continuous Delivery for Puppet Enterprise (PE).
Constructing a pipeline involves defining work that must happen to ensure every new line of
Puppet code is ready for deployment. Once your pipeline
is set up, this work happens automatically each time the pipeline is triggered.
Stages and tasks
Pipelines in Continuous Delivery for PE
are made up of stages
. Tasks include deployments, impact analyses, and jobs to test
code. Stages are groups of tasks. Stages allow you to break pipelines into a series
of sequential task sets. This allows you to have logical control in your pipeline,
- Start task B only if all tasks in stage A succeed.
- If a task in stage A fails, stop the pipeline and report the error.
You can configure pipelines to require manual approval to proceed to the next
stage or advance automatically based on your defined conditions.
Building and managing pipelines: web UI or code
You can build and manage pipelines with the Continuous Delivery for PE
or a YAML file. Using the web UI is the simplest method for building and managing
pipelines, and it is easier to make iterative changes with the web UI controls.
Using a YAML file to build pipelines as code is more complex but ideal if you:
- Need a record of changes to your pipeline over time
- Want to avoid manually creating similar pipelines for many control repos or
- Make changes to your Puppet code that require
new pipeline definitions and you want to commit changes to your
pipelines-as-code at the same time.
You can't mix these methods within a single control repo
or module. Web UI controls are disabled for pipelines that are managed as code.
The following image compares pipelines in the web UI. The pipeline managed in
the web UI has controls available, such as deleting the pipeline, deleting
tasks, and adding stages. The pipeline managed as code does not have these