GitHub Actions: Workflow Syntax and Triggers/Cancel in-progress duplicate runs

Use concurrency groups to keep only the latest run active.

Section: Filters and concurrency

Cancel in-progress duplicate runs

yaml
yaml
concurrency:
  group: ci-${{ github.ref }}
  cancel-in-progress: true
Explanation

This is especially valuable on busy branches where every new push supersedes the prior run.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Filters and concurrency
Run only when selected paths change
Use `paths` to scope the workflow to files or directories.
OpenIn sheetyamlsame section
Ignore docs-only changes
Exclude paths that should not trigger CI.
OpenIn sheetyamlsame section
Set a job timeout
Prevent jobs from hanging forever.
OpenIn sheetyamlsame section
Chain jobs with needs
Run a deploy only after tests succeed.
OpenIn sheetyamlsame section
Minimal workflow file
Basic YAML structure for a workflow.
Name a workflow clearly
Use a descriptive workflow name.