Workflow (one .yml file)
├── Triggered by Events (push, pull_request, schedule, workflow_dispatch, etc.)
└── Contains Jobs (run in parallel by default)
├── Runs on a Runner (ubuntu-latest, self-hosted, etc.)
└── Contains Steps (run sequentially in the same job)
├── Action (reusable pre-built unit, e.g., actions/checkout)
└── Run command (shell command)