Promotion Pipeline Walkthrough
This guide walks you through the full lifecycle of the promotion pipeline — from first deploy through release, version bump, and hotfix — so you can see every workflow in action.
Prerequisites
Before starting, confirm:
- Your organization has 4 environments configured in Konstruct:
dev,test,stage,prod - A GitHub App is connected with access to your app and GitOps repositories
- AWS IAM OIDC trust policy includes
mainandhotfix-*branches - ECR repositories exist for container images and Helm charts
Register the Application
-
Navigate to Applications in the Konstruct UI
-
Click Register Application
-
Select your target repository (must have a
Dockerfile) -
Choose the Promotion pipeline template:
Field Value Repository URL https://github.com/konstructio/konstruct-templatesPath pipeline-templates/promotionBranch main -
Complete registration
Konstruct scaffolds your repository with 6 GitHub Actions workflows and a Helm chart under charts/.
First Deploy to Dev
Registration triggers a commit to main, which automatically runs the Publish Dev workflow.
- Open your repository on GitHub and go to Actions
- Watch the Publish Dev run — it builds the container, packages the chart as
0.1.0-rc.<sha>, and deploys to thedevenvironment - Verify the deployment in your
devenvironment — the app should return its chart version and image tag
The Publish Dev workflow runs automatically on every push to main. You can also trigger it manually from the Actions tab via Run workflow.
Promote Through Environments
Each promotion reads the version currently deployed in the source environment and applies it to the next.
Promote to Test
- Go to Actions > Promote Test
- Click Run workflow
- The workflow reads
dev's deployed version and applies it totest - Verify the same version is now running in
test
Promote to Stage
- Go to Actions > Promote Staging
- Click Run workflow
- The workflow reads
test's deployed version and applies it tostage - Verify the same version is now running in
stage
Release to Production
-
Go to Actions > Release Prod
-
Click Run workflow
-
The workflow:
- Reads the RC version from
stage - Pulls the exact chart artifact from ECR
- Re-tags it with clean semver (e.g.,
0.1.0) - Publishes the release chart
- Creates a GitHub release (
v0.1.0) - Deploys to
prod - Bumps
Chart.yamlonmainto0.1.1 - Triggers a new Publish Dev run for
0.1.1-rc.<sha>
- Reads the RC version from
-
After the run completes, check:
- Production is running version
0.1.0 - GitHub Releases has a
v0.1.0tag with generated notes - Dev is already running
0.1.1-rc.<sha>— the next development version
- Production is running version
The stack is now set up for the next release cycle.
Manual Version Bump
If you need a minor or major version change (patch is handled automatically by release):
- Go to Actions > Bump Version
- Click Run workflow and select
minor Chart.yamlonmainupdates from0.1.1to0.2.0- The push to
maintriggers Publish Dev —0.2.0-rc.<sha>deploys todev - Promote through test, stage, and release as before
Hotfix a Production Release
When you need to patch a production release without including unreleased work from main:
Create the Hotfix Branch
- Go to Actions > Hotfix
- Click Run workflow and enter the release tag (e.g.,
v0.1.0) - The workflow:
- Creates a
hotfix-0-1-1branch from thev0.1.0tag - Bumps the chart to
0.1.1 - Opens a draft PR to
main
- Creates a
Apply and Test the Fix
- Push your fix to the
hotfix-0-1-1branch - The push triggers Publish Dev — the hotfix builds and deploys to
devas0.1.1-rc.<sha> - Promote the hotfix through test and stage using the same promote workflows
- Run Release Prod to release
0.1.1to production
Merge Back to Main
- Open the draft PR that was created automatically
- Mark it ready for review and merge
- This brings the hotfix into the
maindevelopment track so it's included in the next planned release
Workflow Reference
| Workflow | Trigger | What It Does |
|---|---|---|
| Publish Dev | Push to main or hotfix-*, or manual dispatch | Builds container and chart, deploys to dev |
| Promote Test | Manual dispatch | Reads version from dev, deploys to test |
| Promote Staging | Manual dispatch | Reads version from test, deploys to stage |
| Release Prod | Manual dispatch | Re-tags chart, creates release, deploys to prod, bumps main |
| Hotfix | Manual dispatch (input: release tag) | Creates hotfix branch and draft PR |
| Bump Version | Manual dispatch (input: patch/minor/major) | Bumps chart version on main |