Prerequisites and overview
Why this module exists
This course has no live instructor, and "environment" is a word that means two different things depending on context. Before touching anything, that ambiguity needs to be resolved — otherwise modules 2 and 5 will seem to contradict each other when they're really talking about two different levels.
The two meanings of "environment"
1. The native GitHub Actions feature (capitalized in this course as Environment to distinguish it) — an object you create in a repo's settings (Settings > Environments), with its own secrets, variables, and protection rules. It's a concrete technical object, with a UI, an API, and precise plan constraints (module 4).
2. The general concept of a deployment environment — dev, staging, production, sometimes an ephemeral environment per pull request. This is a software strategy concept, independent of GitHub: it exists even without using GitHub's Environment feature, for example if you deploy through a third-party platform that manages its own environments (module 5).
Modules 2, 3, and 4 cover meaning 1. Module 5 broadens to meaning 2. Module 6 helps you decide how the two combine (or don't) in your own case.
Prerequisites
- A GitHub account and a repo where you have admin rights (needed to create Environments and change protection rules).
- A public repo rather than a private one, to follow the hands-on steps. GitHub Free only offers the Environment feature (scoped secrets, protection rules) on public repos — module 4 explains this plan constraint in detail. If your only available repo is private and you're on a Free plan, create a disposable public test repo for this course.
- Basic GitHub Actions knowledge: knowing that a workflow is a YAML file under
.github/workflows/, triggered by an event (on:), that runsjobs. This course does not re-explain that basic layer. - A text editor and
gitto create/edit the workflow file.
What you'll be able to do by the end
- Tell the GitHub Actions Environment feature apart from the general concept of a deployment environment.
- Create an Environment, attach scoped variables to it (and know how to add secrets to it too), and reference it in a workflow.
- Configure protection rules (required reviewers and branch restriction) and observe their real effect on a run; also know about the wait timer and tag-based restriction.
- Explain the advantages, drawbacks, and cost/plan constraints of this feature.
- Place GitHub Environments within a broader environment strategy (dev/staging/prod, ephemeral environments).
- Choose, using a decision matrix, the approach suited to a given context instead of defaulting to habit.
If something fails
If you don't have admin rights on the repo you intended to use, create a dedicated personal public repo for this course — the hands-on steps in modules 2 and 3 only need a minimal workflow file and don't touch anything important; module 6 doesn't even need that, just a repo to reason about.
Want to hear about the next modules?
The Academy stays free and open-access, no sign-up required. If you'd just like to be notified by email when a new module ships, here you go — no obligation, unsubscribe anytime with one click.