GitHub Actions + Docker 25.0: Multi-Environment Deployment Pipelines Without Copy-Paste
βShip to three environments without copy-pasting a single workflow.β
Build a production-grade devβstagingβprod pipeline with environment-scoped secrets, OIDC auth, matrix testing, and manual approval gates β the way a senior DevOps engineer actually configures it.
One-time Β· Lifetime access Β· Certificate included
- β6 modules of content
- β52 concept slides
- β18 practical exercises
- β24 quiz questions
- βCapstone project
- βLearnAspire certificate
Learning Outcomes
What you'll learn
The day after you finish
The day after completing this course, you will open the Velo Systems repository, delete the three environment-specific workflow files Maya inherited, replace them with a single reusable workflow that references GitHub Environment secrets by name, configure a manual approval gate on the prod environment in the GitHub UI, push a commit, and watch dev and staging deploy automatically while prod waits for your approval β with a deploy summary in the Actions run log showing the image SHA promoted across all three environments.
Who this is for
- Primary: Mid-level backend developer or junior DevOps engineer with 2β3 years of experience who has written a Dockerfile and a basic GitHub Actions workflow but is copy-pasting workflow files across environments and managing secrets manually
- Secondary: Platform engineer or SRE who inherited a brittle single-environment pipeline and needs to make it auditable and multi-environment before a compliance or due-diligence review
- Tertiary: Engineering manager or tech lead who will review, approve, or inherit the pipelines their team builds using these patterns
Prerequisites
- Can write a Dockerfile from scratch and understand what COPY, RUN, and EXPOSE do β no layer caching or multi-stage theory required, but syntax must be familiar
- Has triggered at least one GitHub Actions workflow (e.g., run tests on push) and can read a workflow YAML file without confusion at the on:, jobs:, and steps: keys
- Understands git branches, pull requests, and what 'pushing to main' means in a team workflow
- Knows what an environment variable is and has set one in a .env file or a CI settings panel β does NOT need to know GitHub Secrets or OIDC
- Has a GitHub account and can create a repository β no AWS account required for Modules 1β4; AWS OIDC setup is demonstrated in Module 4 with a step-by-step IAM role configuration included
Curriculum
6 modules Β· full breakdown
βοΈ Part of: Cloud & DevOps Path
Capstone Project
Velo Systems Production Pipeline: Three-Environment Promotion with OIDC, Matrix Tests, and Approval Gates
Fork the Velo Systems starter repository (Node.js 20 Express API with Jest 29 test suite and a /health endpoint), configure three GitHub Environments with environment-scoped secrets, write a single reusable workflow that builds a Docker 25.0 multi-stage image, runs a matrix test across Node.js 18 and 20, pushes a SHA-tagged image to GHCR only on full matrix pass, promotes the image through dev and staging automatically, gates prod behind a manual approval step using environment protection rules, and injects AWS credentials via OIDC role assumption at each stage β then submit the Actions run URL and workflow YAML for rubric evaluation against six criteria: no hardcoded secrets, conditional job gates using needs context, environment protection rules applied, matrix failure correctly blocks image push, OIDC used for all AWS auth, and deploy summary visible in run log
What you'll deliver
A public GitHub repository containing: one reusable workflow file (.github/workflows/deploy.yml), one caller workflow per environment trigger pattern, three configured GitHub Environments with scoped secrets, and a passing end-to-end Actions run URL showing successful devβstaging promotion and a prod job waiting on manual approval, with a deploy summary artifact in the run log