Single-stage pipelines are limited. Multi-stage pipelines separate build, test, and deploy stages, improving reliability, observability, and rollback capabilities.
name: Multi-Stage CI/CD
on:
push:
branches: [develop, main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build
run: npm run build
test:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Tests
run: npm test
deploy-staging:
needs: test
runs-on: ubuntu-latest
steps:
- name: Deploy Staging
run: ./deploy-staging.sh
approval:
needs: deploy-staging
runs-on: ubuntu-latest
steps:
- name: Wait for Approval
uses: hmarr/auto-approve-action@v2
deploy-production:
needs: approval
runs-on: ubuntu-latest
steps:
- name: Deploy Production
run: ./deploy-production.sh
needs)Multi-stage pipelines enhance pipeline reliability, visibility, and control, enabling DevOps teams to release faster while minimizing risk.