GitHub Actions expiration check — check action expiry dates

Flags GitHub Actions lines that stop working on a date - retired runner images, shut-down action versions, Node runtimes past end-of-life. Checked against any 'as of' date. Runs entirely in your browser — nothing is uploaded.

Same engine as the VS Code extension, byte for byte.

Install free

Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.

VS Code Marketplace
ext install ReadyStack.actions-expiry-lint

Team? One key for every ReadyStack linter, 5 seats, $149 once

Get one email when this rule changes
We watch the regulation and vendor sources behind Actions Expiry Lint every day. When a rule changes, you get a single email with what changed and the updated check. No newsletter.

Get the full version $29

Sweep every workflow in the repository in one command and write a dated actions-expiry-report.md you keep and attach to the change ticket.

One payment, one licence key for this tool. The key is shown right after payment.

Contract DevOps work is commonly quoted at $75-$150 an hour, so one licence is under half an hour of it.

Buy the full version — $29

Questions people ask

What does Actions Expiry Lint actually check?

It reads GitHub Actions workflow files and flags every line that stops working on a date: retired runner images, action major versions whose backing service was switched off, Node versions past end-of-life, archived action repositories, and workflow commands the runner disabled. Each finding names the date it happened and the replacement line. Thirteen checks, all date-driven.

Who is this for?

CI maintainers, platform engineers and solo maintainers who own the .github/workflows folder in a repository nobody has opened for a year. It is most useful right after an AI assistant or an old template produced the workflow, because those sources reproduce runner images and action versions that were correct on the day they were trained.

Why will actionlint or Dependabot not tell me this?

actionlint checks workflow syntax and expression types. Dependabot raises a pull request when an action has a newer tag. Neither one holds a calendar. Neither will tell you that the macos-13 image was removed on 2025-12-04, that upload-artifact v3 was switched off on 2025-01-30, or that Node 20 left maintenance on 2026-04-30.

What is free and what needs a licence key?

Free covers one file completely: open a workflow in VS Code and all thirteen checks run with full messages and full dates, or paste the file into the web page instead. The paid part is scope and ownership - one command sweeps every workflow in the repository and writes a dated report file you keep.

What would this cost me otherwise?

Contract DevOps work is commonly quoted at $75 to $150 an hour, so one licence costs less than half an hour of it. The comparison that matters more is the release window: a job that names a removed runner image does not fail slowly or halfway, it refuses to start at all.

What happens when the rule set gets old?

Every check is a date plus a replacement, held in one rules.json file, and the engine compares those dates against an as-of day you choose. Set the date back and the same file reports different findings, which is how you can see what your workflow looked like when it was written and what it looks like today.

Ask about this tool

One question, answered by the person who built it. Your email only if you want the answer sent.

Embed this tool on your site (free)

Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.

 All embeddable tools

For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →

ENDEJAESPT

Find a tool