⚡deftools.io Developer Tools

GitHub Actions Validator

Validate GitHub Actions workflow YAML — syntax, required fields, deprecated actions, job dependencies, and context expressions

Workflow YAML
Validates as you type. YAML syntax + workflow rules + deprecated actions.
Paste a workflow to validate
Copied!

About this tool

The GitHub Actions Validator checks a workflow YAML file against the GitHub Actions schema and common best practices. It catches syntax problems, missing required fields (on, jobs, runs-on), invalid needs references, circular dependencies, and more than 25 deprecated action versions.

Useful during CI/CD setup or troubleshooting when a workflow fails to trigger, a job hangs, or you are upgrading an older repository. The tool points directly at the field and line that needs attention.

Example: a workflow that uses actions/checkout@v2 and actions/setup-node@v1 will report both as deprecated with the recommended replacement versions. A job with needs: [nonexistent] is flagged as an error.

Toggle strict mode to also require a workflow name and validate concurrency group presence — off by default so legacy workflows do not drown in noise.

FAQ

Does this validate every possible GitHub Actions workflow feature? ›

It covers the most common issues: required fields (on, jobs, runs-on), deprecated actions and runners, invalid needs references, circular dependencies, missing step commands, and suspicious context expressions. Niche features like reusable workflows, composite actions, or OIDC configuration are not exhaustively checked — the focus is on errors that block execution.

Why does it flag pinned SHA references? ›

Pinning to a commit SHA (e.g. actions/checkout@a1b2c3d) is the most secure approach because it prevents supply-chain attacks, but it makes version upgrades manual. The tool notes this as info — it is not an error. Tag-based pins (e.g. @v4) are easier to keep current.

How is circular dependency detection done? ›

The tool walks the needs graph for each job. If a job transitively depends on itself, a circular dependency error is reported. GitHub Actions itself rejects workflows with cycles, so fixing them before push saves time.

What YAML features are supported? ›

The parser handles nested mappings, arrays (dash lists), quoted strings, multi-line strings (|, >), flow mappings, and flow sequences — everything commonly used in GitHub Actions workflows. YAML anchors and aliases are not supported.

More developer tools

Copied!