Pipelines and releases

5 minute readReference

The CloudBees CD/RO pipeline is a general-purpose automation object comprising tasks grouped within stages. Pipelines can be used for build, testing, and other software delivery activities. The CloudBees CD/RO release extends the pipeline object to include release-specific functionality, including planning, application manifest, status reporting via the Release Command Center (RCC) dashboard, and the path-to-production view.

To access pipelines and release pipelines:

  • Pipelines: Navigate to Release Orchestration  Pipelines and select a pipeline. The Pipeline editor window opens, displaying available pipelines.

  • Release pipelines: Navigate to Release Orchestration  Releases and select a release. The Release editor window opens, displaying available release pipelines.

Comparing pipelines to release pipelines

Although they are equally important in software development and deployment, their purpose and scope differ. Here is a comparison of CloudBees CD/RO pipelines and release pipelines.

Pipelines

Pipelines include a set of stages, tasks, and entry and exit gates used to perform an orchestrated process.

  • The term pipeline refers to the series of automated steps or stages code goes through from development to deployment.

  • Pipelines provide a structured and automated way to build, test, and deploy software, ensuring consistency and efficiency.

  • Pipelines often involve compiling code, running tests, creating artifacts, and deploying to various environments.

  • Typically, pipelines are managed and configured using tools like Jenkins, GitLab CI/CD, or Azure Pipelines.

  • Pipelines focus on the automation and orchestration of the development process, enabling developers to streamline their workflows and ensure code quality before it is released.

Release pipelines

Release pipelines represent specific versions or iterations of software ready for deployment to end-users or production environments.

  • A release is a distinct and identifiable state of the software, typically associated with a version number or label.

  • It involves packaging the code, configurations, and dependencies into a deployable artifact.

  • Before deployment, a release often undergoes various stages, like testing, quality assurance, and approval.

  • It can be associated with release notes, documentation, and communication to stakeholders about the changes and improvements included in that version.

Using pipelines and release pipelines

As an example for use, suppose you have been tasked with making changes to the sign-in functionality of an application. This complex deployment has thousands of customer sign-ins every three minutes.

In this case, you first plan to create a pipeline to compile your source code, begin testing, and package a deployable artifact. Then, you create a release and use the release pipeline to automate the deployment-related activities, such as configuring the target environment, deploying the artifact, and performing final testing and validation.

Use pipelines to ensure that code changes are tested and validated before release. Use a pipeline when:

  • Creating an orchestrated process that does not involve deployments.

  • Creating an orchestrated process that is expected to be reused or executed multiple times and not associated with a deployment version.

  • Creating a pipeline with deployments that will be a template for a release object.

Use a release pipeline to deploy the actual versions of the code to the production environment where end-users can access it. Use a release pipeline when:

  • Deploying a particular version of your application or platform.

  • Creating an orchestrated process that will run as part of a larger release (sub-releases).

  • Creating a release with deployments that will be a template for many purposeful release objects.

Pipelines versus release pipelines in CloudBees CD/RO

This section offers insights for differentiating between pipelines and release pipelines in CloudBees CD/RO.

User interface differences

Although the user interface for pipelines and release pipelines in CloudBees CD/RO are similar, release pipelines include these additional capabilities:

  • Schedule a release within the milestone dates and times to arrange environment deployments.

  • Identify applications that are part of the release. For example, a bill of materials.

  • Capture components, artifacts, and their versions alongside the application processes that make up a particular application version using the Snapshots feature.

  • Assign environments for releases.

  • Capture the configuration and desired inputs for each environment release.

  • Map out a path-to-production for the full bill of materials.

  • Provide statistics on planned versus actual milestones.

  • Attach related pipeline execution runs and sub-releases as data points. For example, pipelines or releases for related loosely coupled applications.

  • Add free text notes for the release.

  • Represents a particular release version of the application or platform from development to Production and ends the release at completion.

Conceptual differences

In addition to capability differences between pipelines and release pipelines within CloudBees CD/RO, the table below explains some key conceptual differences:

Table 1. Conceptual differences between pipelines and release pipelines
Pipelines Release pipelines

A pipeline can be independent of a release.

A release leverages a pipeline to define the process to release one or more application versions.

Pipelines allow parameter inputs, stages, steps, gates, and conditions to manage and orchestrate the process.

Releases do not orchestrate the process; the embedded pipeline does this. Parameters are provided to the pipeline.

Pipelines are more suitable for reuse and re-execution as they may not represent a particular version of the application or platform. They can perform orchestrated processes for almost any purpose, not only for deployments.

Releases are designed to represent a deployment of a version of the application or platform and executed through the process to successfully or unsuccessfully complete through to a defined environment (typically Production). It usually includes all the prerequisite and test environments (for example, QA, Staging, or similar). A new patched application version should require a new release object to orchestrate the next version. Ended or Completed releases cannot be re-executed.

Previously created pipelines can be used as templates for new pipelines or releases.

Previously created or completed releases can be used as templates for new releases.

Pipelines are not visible in the Release Calendar. They do not have pre-scheduled dates and times.

Releases are visible in the Release Calendar.

Built-in CloudBees Analytics dashboards do not report on pipelines.

All pipeline event data is retained, so you can create user-specific reports and dashboards that use this data.

Built-in CloudBees Analytics dashboards only report on releases.

Pipeline reuse

CloudBees CD/RO includes the ability to create pipelines for reuse; here are some common approaches.

  • Create a pipeline or release pipeline object and define all the configurations and steps. Maintain this object for use as a template.

  • Use the Copy Existing option to reuse an existing configuration when creating a new pipeline or release pipeline. For more information, refer to Create a pipeline.

  • Create a pipeline or release pipeline from a Service Catalog item template. For more information, refer to Create a new release from a template.

Useful pipeline references

Refer to these additional sources for more information.

In summary, pipelines are the automated processes that facilitate the development and deployment of software, ensuring consistent and efficient workflows. Release pipelines represent specific software versions ready to be deployed to production environments or made available to end users.