Free course

GitHub Actions and CI/CD Course

Build a secure GitHub Actions pipeline for tests, artifacts, releases, protected deployments, rollback, and ongoing operations.

5 modules · 25 lessons · No signup

Prerequisites: Git and Testing JavaScript Applications

~~~

Your progress

of lessons completed.

Course completed.

What you'll learn

Build and threat-model a pipeline that tests a pull request, creates one artifact, deploys through a protected environment, and rolls back safely.

Take this course offline

Subscribe to my newsletter to get every free book and course in PDF and EPUB format.

Get the downloads

Course contents

  1. Workflow foundations

    Map events, jobs, steps, runners, contexts, and reproducible commands.

    1. Map events, workflows, jobs, and steps
    2. Choose triggers carefully
    3. Run reproducible steps
    4. Read contexts and expressions
    5. Check your understanding: workflow foundations
  2. Test, build, and share data

    Design job graphs, matrices, caches, artifacts, and failure evidence.

    1. Design the job graph
    2. Use a purposeful matrix
    3. Separate caches from artifacts
    4. Preserve failure evidence
    5. Check your understanding: test, build, and share data
  3. Secure the pipeline

    Minimize token permissions and protect secrets, forks, inputs, and action dependencies.

    1. Minimize token permissions
    2. Handle untrusted input and forks
    3. Protect secrets and cloud access
    4. Pin and review actions
    5. Check your understanding: secure the pipeline
  4. Reuse, release, and deploy

    Reuse stable policy, control concurrency, promote artifacts, and protect environments.

    1. Choose the right reuse boundary
    2. Control concurrency
    3. Build a release from one artifact
    4. Use protected environments and rollback
    5. Check your understanding: reuse, release, and deploy
  5. Operate and improve CI/CD

    Make failures actionable, control flakiness and cost, and rehearse recovery.

    1. Make failures actionable
    2. Treat flaky tests as defects
    3. Control minutes, storage, and runners
    4. Finish the pipeline review
    5. Check your understanding: operate and improve ci/cd