The syntax the exam expects you to read cold, in one place. Keep it open while you practise: workflow, job and step keys, which contexts each key can see, the expression language, workflow commands and environment files, the default variables and the three shapes of action.yml.
Page
Deep dive
Exam
GH-200
Skills measured
January 2026
Sections
13
How to use this page
This is a lookup page. The reasons behind each key — and the traps — are on the skill pages, linked from each
section. Search (Ctrl/⌘+K) finds any key on this page by its exact spelling.
Shown in the Actions tab and in badges; defaults to the file path
run-name
Name of each run; can use github, inputs and vars
on
Events, activity types and filters; no expressions allowed
permissions
Default GITHUB_TOKEN scopes for every job
env
Variables for every step of every job
defaults.run
shell and working-directory for run steps
concurrency
group, cancel-in-progress, queue (single or max)
jobs
The jobs, keyed by an ID made of letters, digits, - and _, starting with a letter or _
Job keys
Key
Purpose
name
Display name (also the required-check name)
needs
Jobs that must succeed first
if
Condition; can read github, needs, vars, inputs
runs-on
Labels, group or both
permissions
Replaces the workflow's token scopes for this job
environment
Name, or name and url
concurrency
As at workflow level, per job
outputs
Values for jobs that need this one
env · defaults
Job-level variables and run defaults
timeout-minutes
Default 360
strategy
matrix, fail-fast, max-parallel
continue-on-error
Let the run pass if this job fails
container
Run the steps in a container: image, credentials, env, ports, volumes, options
services
Sidecar containers, with the same sub-keys
uses · with · secrets
Call a reusable workflow instead of running steps
steps
The steps
Step keys
Key
Purpose
id
Needed to read the step's outputs, outcome and conclusion
name
Display name
if
Condition; adds success() && unless a status function is used
uses
An action: owner/repo@ref, owner/repo/path@ref, ./path, docker://image
with
Action inputs; args and entrypoint for Docker actions
run
A script
shell
bash, sh, pwsh, powershell, cmd, python, or a custom template with {0}
env
Step variables — highest precedence
working-directory
For run
continue-on-error · timeout-minutes
Failure handling for the step
Context availability
Which contexts each key can read. Anything not listed is not available there — the most common reason an expression
"does nothing". Explained in Foundations.
An unspecified shell on Linux is bash -ewithoutpipefail, so
npm test | tee log.txt passes even when the tests fail. Set shell: bash (or
defaults.run.shell: bash) to get -o pipefail.
Action metadata
Top-level keys: name, description and runs (required), plus
author, inputs, outputs and branding. The runs block
depends on the type — details in Skill 3: