Overview

What are Humanitec Pipelines?

Humanitec Pipelines are multi-step workflows that are used to automate common processes and interactions around Applications and Environments.

The most common use of Pipelines is to specify how Sets and Deltas are deployed into any given Environment in the Humanitec Platform Orchestrator, but Pipelines can be used for other kinds of operations such as artefact deployment, environment-to-environment promotion, and on-demand API-triggered operations.

A Pipeline Run is a single execution of a Pipeline. A Run contains one or more Jobs each of which contains sequential Steps. Jobs can run concurrently and have dependencies on other Jobs in the Run.

Pipelines are defined using a YAML syntax at the Application level by Application owners and may be used by developers in your Organization. For more information on the specification, see Specification.

Pipeline Steps can take actions like:

  • Applying artefacts to an Environment to build a Delta
  • Applying a delta to an Environment to produce a Deployment Set
  • Deploying a Delta or Deployment Set
  • Waiting for Workloads in an Environment to reach a Ready status
  • Cloning between Environments
  • Creating Approval Requests and waiting for external approval
  • Performing outgoing network requests
  • Triggering and waiting for GitHub Actions Workflows and GitLab Pipelines

To read more about actions, see Available Actions.

Pipelines can be managed through the user interface, APIs, and the Terraform Provider.

Deployment Pipelines

Deployment Pipelines are triggered by deployment_request calls and handle the deployment of a Delta or Set, or the redeployment of a previous deployment to the Environment. Deployment requests are created by:

  • Clicking “Deploy” or “Re-deploy” in the Platform Orchestrator UI
  • API requests to the /orgs/{orgId}/apps/{appId}/pipeline-runs endpoint with a Pipeline trigger set to “deployment_request
  • API requests to the /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys endpoint
  • Existing container image automation rules

Deployment Pipelines are matched to deployment requests through the use of Pipeline Criteria. When no matching criteria exist, deployment requests will be routed to a managed “default” Pipeline in the Application.

For more information and in-depth examples, see Deployment Pipelines.

Artefact Automation Pipelines

Artefact Automation Pipelines are triggered by the artefact event that is broadcast when new Artefact Versions are added to the Platform Orchestrator by your CI Pipeline or other build processes. These can be used to automatically deploy new container image versions or new workload artefacts based on the Score specification.

Artefact Pipelines can coexist with any existing Auto Deployment Rules. Pipeline-based artefact automations provide similar functionality to Auto Deployment Rules, but provide more transparency and control around the deployment process and provide more options for policy enforcement and for running post-deployment tasks.

For more information and in-depth examples, see Artefact Automation Pipelines.

API-triggered Pipelines

The final way to trigger a Pipeline is through the optional pipeline_call trigger. This allows Pipeline inputs to be fully customized and provides an integration point for external tools and continuous integration systems to trigger deployments and other automated processes.

For more information and in-depth examples, see API-triggered Pipelines.

Examples

Humanitec Pipelines are a very flexible tool for automating deployment of Applications. By combining the available triggers and inputs in different ways, many kinds of behavior can be encoded.

Example snippets for each feature are included throughout the documentation for the Pipeline types and actions.

To find more complex example Pipelines, see the example pages on:

Top