GitHub Actions Tutorial
Learn GitHub Actions from scratch: workflow syntax, events and filters, secrets, dependency caching, artifacts, matrix builds, Docker images, and deploying to AWS with OIDC instead of stored keys.
8 lessons in this tutorial
Introduction to GitHub Actions
What GitHub Actions is and how it runs your build. Workflows, jobs, steps and runners explained, with a first working pipeline you can commit today.
GitHub Actions Workflow Syntax
The YAML that drives a workflow. Events and filters, job dependencies, conditionals, contexts and expressions, explained with the failure each one prevents.
GitHub Actions Secrets and Variables
How to store credentials for a workflow without leaking them. Repository, environment and organisation scopes, log masking, and why secrets are unavailable on fork pull requests.
Caching Dependencies in GitHub Actions
How actions/cache works, how to write a key that actually hits, and why a cache can make a build slower. With the built-in caching in the setup actions.
GitHub Actions Artifacts
How to move files between jobs and keep build output after a run. upload-artifact v4 behaviour, retention, the immutability change, and when to use a cache instead.
GitHub Actions Matrix Builds
Run one job across many versions and platforms. Matrix syntax, include and exclude, fail-fast, max-parallel, and how to stop a matrix from multiplying out of control.
Build and Push Docker Images with GitHub Actions
Build a container image in CI and push it to GHCR or ECR. Buildx setup, registry login, layer caching that actually works, and sensible tagging.
Deploy to AWS from GitHub Actions with OIDC
Replace stored AWS keys with short-lived credentials. The IAM trust policy explained claim by claim, the sub condition that scopes it to your repository, and the errors each mistake produces.