Validate GitHub Actions Online — Workflow Structure Checker

Live structural checks for on, jobs and steps. Not full actionlint — honest browser-local validation.

Loading…
GitHub Actions validator — structural checker
Catch missing on/jobs, empty steps, and YAML parse errors before pushing a workflow — honest structural scope, not actionlint.

Developer notes

• Validates structure only: root on + jobs, job runs-on|uses|steps, step run|uses. • Debounced ~300 ms after typing stops. • Empty input shows idle state (not invalid). • Does not evaluate ${{ }} expressions or pin action versions. • Issues and severity counts appear in the results panel after debounce (~300 ms).

When teams pick this route

• Sanity-check a pasted workflow from a ticket. • Find missing script/uses on a step before CI fails. • Teach workflow shape with immediate feedback. • Pair with format-github-actions after fixing structure.

Worked examples

Valid checkout + test job

Input

name: CI on: push: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npm ci - run: npm test

Validation result

Valid workflow structure — no blocking issues — shown in the results panel.

Step without run or uses

Input

name: Broken on: push jobs: build: steps: - name: empty step

Validation result

Invalid — step must define run and/or uses (structural error) — shown in the results panel.

Navigate related CI/CD tools

Format fixed YAML with format GitHub Actions, or explore validate GitLab CI and the CI/CD hub.

GitHub Actions validator FAQ

Structural checks only

Is this actionlint?

No. We check YAML parse and common structural requirements (on, jobs, steps). Expression lint, permissions schemas, and marketplace lookups are out of scope.

Do reusable workflows validate?

Jobs that use uses (reusable workflow) are accepted without requiring steps. Nested reusable action details are not deeply validated.

Why is empty input not invalid?

Idle state avoids noise while you paste. Validation starts once content is present.

CI/CD

GitHub Actions and GitLab CI — format YAML and check workflow/job structure in your browser.

Explore other tool categories

Minify

Shrink code and assets for production — minify JavaScript, CSS, HTML, JSON and XML before gzip or CDN deploy.

Beautify

Make code readable with consistent indentation — beautify JavaScript, CSS, TypeScript, SCSS, LESS, Markdown, GraphQL, SQL, YAML and more in your browser.

Unminify

Expand minified or compressed code — unminify JavaScript, CSS, TypeScript, SCSS, LESS, SQL, YAML and other formats when debugging or reviewing.

Conversion

Transform data between JSON, YAML, XML and CSV locally — no server uploads.

CSS preprocessors

Compile SCSS or LESS to standard CSS in the browser — pair with beautify or minify for a full stylesheet workflow.

JSON Tools

Validate, format, diff and explore JSON payloads — complementary to minifiers and converters.

SVG Tools

Preview, optimize with SVGO, export Data URI, resize, beautify, convert to JSX and validate SVG — all in your browser.

DevOps & Infra

Terraform HCL format/validate/minify, Dockerfile format & lint, Docker Compose and .env validation.

Logs & observability

Line-oriented JSON/NDJSON and Nginx/Apache access logs — format, filter, validate, and CSV/TSV.

Kubernetes

Multi-doc manifests, structural validate, Ingress/Deployment starters, and Helm values formatting.

Networking / IP

CIDR, subnets, and IPv4/IPv6 helpers — in your browser.

Security & tokens

JWKS, X.509 certificates, and secrets scan — browser-local.

API & schemas

OpenAPI tools to format, validate, and lint your specs.

Encoding

Encode or decode Base64, URL components and HTML entities — client-side only.

Developer utilities

Timestamps, UUID, ULID, Nanoid, cron, passwords, regex, slugify, number bases, case, text diff, and chmod — all client-side.

Text & Markdown

Count words, build Markdown TOCs, and clean line lists — all in your browser.

Serialization

Serialize and deserialize PHP data structures beside JSON workflows.