GitHub Actions: Workflow Syntax and Triggers/Run only when selected paths change

Use `paths` to scope the workflow to files or directories.

Section: Filters and concurrency

Run only when selected paths change

yaml
yaml
on:
  push:
    paths:
      - "src/**"
      - "package.json"
      - ".github/workflows/ci.yml"
Explanation

Path filters save minutes and cost by skipping unrelated changes.

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
Ignore docs-only changes
Exclude paths that should not trigger CI.
OpenIn sheetyamlsame section
Cancel in-progress duplicate runs
Use concurrency groups to keep only the latest run active.
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.