Challenge complete. Keep going with the CI/CD with GitHub Actions learning path.
Tick each day as you finish it. Progress is stored in this browser and shown onMy Academy.
Explain what rebase creates and why the old commits survive in the reflog.
- Understand Git Rebase Explained: How Rewriting History Works
- Test yourself Knowledge check at the end of the lesson
- Practice Lab: Repair a Broken Interactive Rebase
Then Rebase a personal branch onto main and inspect the reflog afterwards.
Reshape a branch — squash, reorder, edit — and know the direction fixup folds.
- Understand Interactive Rebase in Git: Reshape Your Commit History
- Test yourself Knowledge check at the end of the lesson
- Practice Lab: Clean Up a Branch with Interactive Rebase
Then Do the lab: five messy commits into two, with the diff proving nothing changed.
Know the one rule with the widest blast radius and the force-push flags that actually protect.
- Understand When Not to Rebase in Git
- Test yourself Knowledge check at the end of the lesson
- Practice Lab: Recover from a Force Push
Then Do the lab, then alias `push --force-with-lease --force-if-includes` and never type --force for a shared branch again.
Predict the history each merge method produces.
- Understand Fast-Forward vs Three-Way Merge in Git
- Test yourself Knowledge check at the end of the lesson
- Practice Lab: Undo a Bad Merge
Then Do the lab: reset a merge nobody saw, revert one they did, hit the re-merge trap.
Decide a model from the five questions, not from preference.
- Understand How to Choose a Git Branching Strategy
- Test yourself Knowledge check at the end of the lesson
Then Write down your team's answers to the five questions in one paragraph.
Handle an interruption without stashing.
- Understand Git Worktrees: Work on Multiple Branches at Once
- Practice Lab: Parallel Work with Git Worktrees
Then Do the lab. Keep a worktree of main beside your feature directory this week.
Name the layers — event, workflow, job, runner, step — and why the runner starts empty.
- Understand What Is GitHub Actions? A Complete CI/CD Guide
- Test yourself Knowledge check at the end of the lesson
Then Read one workflow file in a repository you use and label each layer.
Get from an empty .github/workflows to a green check.
Then Create the workflow in a scratch repository and watch it run.
Choose the right event and filter for each job.
- Understand GitHub Actions Events and Triggers
Then Add a path filter to yesterday's workflow and observe what does not run.
Read any context; never interpolate untrusted text into `run:`.
- Understand GitHub Actions Contexts and Expressions: Complete Reference
- Test yourself Knowledge check at the end of the lesson
Then Print `toJSON(github.event)` through `env:` once and read it.
Build a pipeline whose every stage you ran locally first.
- Understand Python CI with GitHub Actions: Complete Pipeline
- Practice Lab: Build a Python CI Pipeline
Then Do the lab, including the matrix and the artifact kept on failure.
Install from the lockfile with `npm ci` and understand why `npm install` is the reproducibility bug.
- Understand Node.js CI with GitHub Actions: Complete Pipeline
- Practice Lab: Build a Node.js CI Pipeline
Then Do the lab; watch `npm ci` refuse without a lockfile.
Key a cache on what actually changes, and recognise a cache that hurts.
Then Find one workflow with a constant cache key and fix it.
Prove your test stage runs — because by default it may not.
- Understand Docker CI with GitHub Actions: Build, Scan, Publish
- Practice Lab: Build a Docker CI Pipeline
Then Do the lab: build a broken test with exit 0, then gate on `--target test`.
Diagnose failures whose error messages point the wrong way.
- Understand GitHub Actions Jobs: Parallelism, Dependencies and Outputs
- Practice Lab: Debug a Failing GitHub Actions Workflow
Then Do the lab: merge base, permissions, skipped checks, cache keys. If a regression is in Git rather than CI, the bisect lab (18) is the tool.
Declare permissions; know what `actions: write` hands an attacker.
- Understand Least-Privilege Permissions in GitHub Actions
- Test yourself Knowledge check at the end of the lesson
Then Set the organisation default token permission to read-only, or find out why you cannot.
Recognise injection and the `pull_request_target` trap.
- Understand GitHub Actions Security: Injection, pull_request_target and Hardening
- Test yourself Knowledge check at the end of the lesson
- Practice Lab: Secure an Unsafe GitHub Actions Workflow
Then Do the lab: four real vulnerability classes in one file.
Pin third-party actions to a SHA and keep them updated.
- Understand Pinning GitHub Actions to Commit SHAs
Then Pin every third-party action in one workflow and enable Dependabot for Actions.
Replace a stored cloud key with a per-run token and a trust policy that restricts.
- Understand GitHub Actions OIDC: How Workflow Identity Works
- Test yourself Knowledge check at the end of the lesson
- Practice Lab: Migrate a Workflow from Stored Secrets to OIDC
Then Do the lab, including proving the broad trust policy admits any repository.
Scope secrets to environments; know what masking does and does not do.
Then Move one production secret from repository scope to an environment with required reviewers.
Gate deployments on reviewers and rules.
- Understand GitHub Actions Environments
Then Add a production environment with one required reviewer to a deployment workflow.
Stop the secret before it is committed.
Then Enable push protection on one repository and test it with a fake key.
Rotate first; then rewrite, knowing what the rewrite does not fix.
- Understand Remove Secrets from Git History Safely
- Test yourself Knowledge check at the end of the lesson
Then Run `git log --all -p -S` for a known-bad string in a repository you own.
Know exactly what a signature proves.
- Understand Signed Git Commits: Authenticity and Verification
- Test yourself Knowledge check at the end of the lesson
Then Register an SSH signing key and sign one commit.
See the chain of custody from source to artifact and where each link can break.
- Understand Software Supply Chain Security Explained
Then Generate an SBOM for one build artifact.
Attest what your pipeline built and verify it before deployment.
Then Add `attest-build-provenance` to one release workflow.
Put the plan on the pull request; read `-/+` as a reviewer.
- Understand Terraform Git Workflow: Branches, PRs, Plans & Deployments
- Practice Lab: Terraform Pull Request Workflow
Then Do the lab, no cloud account needed.
Apply the four-principle litmus test to your own pipeline.
- Understand GitOps Explained: Git, Kubernetes & Continuous Reconciliation
- Test yourself Knowledge check at the end of the lesson
Then Score your deployment pipeline against the four principles.
Ship a reviewable, reconciled infrastructure change.
- Understand Kubernetes Environment Promotion with Git
- Practice Lab: Ship an Infrastructure Change Through a Pull Request
Then Do the lab.
Review an AI-authored change as a contribution from a competent stranger.
- Understand Reviewing Agent Pull Requests
- Test yourself Knowledge check at the end of the lesson
Then Take the readiness assessment for your team, and pick the learning path it recommends.