Steps run sequentially in one runner
Inside a job, steps run one after another on the same runner. The filesystem persists between steps. Failed step → job fails (unless continue-on-error).
A step is one of two things:
- A
run:step — runs a shell command. Default shell:bashon Linux/macOS,pwshon Windows. - A
uses:step — invokes a reusable action. Format:uses: org/repo@ref.
Common step fields
name— friendly name (shows in logs). Optional but kindly.id— internal id (used to reference the step's outputs from later steps).if— gates the step on an expression.env— step-scoped env vars.working-directory— start directory for the step.shell— override default shell.continue-on-error— let the step fail without failing the job.timeout-minutes— kill the step after N minutes.with— input map for auses:action.