Two kinds of pipeline runs
Pipelines fill two roles in Ravion, and you’ll see both in your run history:- Pipelines you author — build and deploy workflows triggered by git pushes, the API, or manually. These are the optional replacement for GitHub Actions described on this page.
- Stack pipelines — the change and destroy pipelines attached to every module stack, which run Terraform plan → approval → apply whenever a module’s infrastructure config changes or the module is deleted. By default these are Ravion-managed system pipelines; your platform team can substitute custom ones.
One pipeline, many environments
A pipeline describes a workflow, not an environment. Don’t create a “Production pipeline” and a “Staging pipeline” — create one pipeline named after what it does, like Build & Deploy, and add a variant per environment. Steps reference module instances through<< pipeline.variant.id >>, so the same steps deploy to whichever environment a run targets:
One workflow per pipeline
A pipeline should contain steps that depend on each other. If two sets of steps never consume each other’s outputs and never need to wait on each other, they are separate workflows — make them separate pipelines, not parallel groups in one pipeline. The common mistake is a pipeline shaped like this:- A deploy that pins the image digest from a build.
- One image build that several module instances deploy.
- A test or
terraform:planstep that gates a deploy or apply. - An approval that several deploys wait on.
- Services that must roll out together, in a fixed order, because of a schema or API contract.
parallel for steps that can overlap inside one of these workflows — build two images before a shared deploy stage, or fan a single build out to several deploys. Reach for group only occasionally: it labels a nested sequence in the UI and can carry a concurrency key for the block as a whole, so it’s useful to hold a multi-step branch inside a parallel block. A pipeline whose top level is nothing but parallel groups is almost always several pipelines. See Blocks for the semantics.
You might want to use Ravion pipelines for the following reasons:
1
You get a single pane of glass and CLI/API surface area to see all your builds, deploys, and infrastructure.
2
You get enhanced security and control because you no longer have to open up your database or
image registries to GitHub Actions. Ravion pipelines execute entirely in your cloud account.
3
You can define all your build configuration in the module alongside your runtime config.