GitHub Actions Tutorial with Examples.
GitHub Actions tutorial: automate workflows with triggers, jobs, matrix builds, reusable workflows and marketplace actions.
Beginner
Start here — no prior experience needed
GitHub Actions: Workflows, Jobs, and a Real Failing Step
Run a real GitHub Actions workflow locally with act — no push, no account needed — and see exactly what a failing step's exit code does to the rest of the job.
Secrets: Real Log Masking, and the Base64 Trick That Defeats It
GitHub Actions masks a secret printed directly to the log — but transforming it first (base64, a substring, a hash) produces output the masker never recognizes as the secret, leaking it in full.
Intermediate
For developers with core concepts down
Matrix Builds: Real Parallel Expansion, and a fail-fast Limitation Under act
A 3-value matrix genuinely runs as three separate, interleaved, concurrent jobs — but fail-fast's promise to cancel the others the instant one fails doesn't hold up the same way under act as it does on GitHub's real runners.
Reusable Workflows: Real Input Passing, and a required Validation Gap in act
A workflow_call input flows through correctly when supplied — but marking it required: true doesn't stop act from running the job anyway with a silently empty value when it's omitted.
if Conditions: Why env.DEPLOY Ran a Step It Was Meant to Skip
env.DEPLOY: false stores the string "false" — and in GitHub Actions expression syntax, any non-empty string is truthy, so if: env.DEPLOY runs the step regardless of what the flag actually says.
actions/cache: Measuring What a Cache Hit Actually Skips
A real cache miss and hit against the same workflow under act — the exact step a hit skips entirely, and the fixed act overhead a hit doesn't remove.
Advanced
Production-grade patterns for experienced engineers
Also part of GitHub Actions
Taught in other topics. Each link opens the lesson in its home topic.
Bash Error Handling
Write robust scripts with set -euo pipefail, trap ERR, exit codes, meaningful error messages, and safe cleanup patterns.
CI/CD Pipeline Patterns: Sequential, Parallel, and Staged
Measure the real time cost of a sequential CI pipeline versus a parallel one, then reproduce the dependency bug naive parallelism introduces and fix it with a build gate.
Terraform CI/CD with GitHub Actions (plan/apply)
A GitHub Actions workflow for Terraform, with the real output of each step it runs: fmt -check, init, validate, plan -detailed-exitcode and a saved plan.
A CI Security Gate: Gitleaks, Bandit and pip-audit in One Workflow
Combine secrets, code and dependency scans into one script and one GitHub Actions job that fails on a planted bug, passes after the fix, and sees history.
Migrating a Jenkins Pipeline to GitHub Actions
Map a declarative Jenkinsfile stage by stage onto a GitHub Actions workflow — agents, parallel stages, secrets, and artifacts — with the same commands producing the same output on both sides.