GitHub - endoflife-ai/eol-check: GitHub Action: fail CI when your stack runs end-of-life software — auto-detects runtimes and Docker base images, powered by endoflife.ai · GitHub
/" data-turbo-transient="true" />
Skip to content
Search/
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
endoflife-ai
eol-check
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
Use this GitHub action with your project<br>Add this Action to an existing workflow or create a new one<br>View on Marketplace
main
BranchesTags
Go to file
CodeOpen more actions menu
Latest commit
History<br>2 Commits<br>2 Commits
Folders and files<br>NameNameLast commit message<br>Last commit date<br>.github/workflows
.github/workflows
fixtures
fixtures
LICENSE
LICENSE
README.md
README.md
action.yml
action.yml
index.js
index.js
View all files
Repository files navigation
eol-check — fail CI when your stack runs end-of-life software
A zero-dependency GitHub Action that scans your repo for runtime versions<br>(.nvmrc, .python-version, .ruby-version, go.mod, package.json<br>engines, Dockerfile base images) and checks each one against<br>endoflife.ai. Anything past end of life fails the<br>build with a file-anchored annotation; anything close gets a warning and a<br>date. No API key, no configuration required.
- uses: endoflife-ai/eol-check@v1
That's the whole integration. A fuller example:
name: EOL gate<br>on:<br>pull_request:<br>schedule:<br>- cron: '0 6 * * 1' # weekly — EOL dates pass whether or not you push code
jobs:<br>eol:<br>runs-on: ubuntu-latest<br>steps:<br>- uses: actions/checkout@v5<br>- uses: endoflife-ai/eol-check@v1<br>with:<br>products: 'postgresql:14, kubernetes:1.32' # things not visible in the repo<br>fail-on: 'eol' # or 'approaching' / 'never'<br>warn-days: '90'
What it detects automatically
Source<br>Product
.nvmrc, .node-version, package.json engines.node<br>Node.js
.python-version<br>Python
.ruby-version<br>Ruby
go.mod (go 1.x)<br>Go
Dockerfile* FROM images (root + 2 levels)<br>node, python, ruby, golang, php, nginx, postgres, mysql, mariadb, redis, mongo, alpine, debian, ubuntu
Anything else — databases, OSes, appliances, 500+ products — via the<br>products input as slug:version pairs. Slugs are the path segments on<br>endoflife.ai (e.g. endoflife.ai/postgresql → postgresql).
Inputs
Input<br>Default<br>Meaning
products<br>''<br>Extra slug:version pairs, comma-separated
scan<br>true<br>Auto-detect from repo files
fail-on<br>eol<br>eol | approaching | never
warn-days<br>90<br>Warn when EOL is within this many days
Outputs
eol-count, approaching-count, checked-count, and report (the<br>markdown table also written to the job summary).
Example output
error · nodejs 18 is END OF LIFE since 2025-04-30 (477 days ago) — no more security fixes. https://endoflife.ai/score/nodejs/18<br>warning · python 3.10 reaches end of life in 72 days (2026-10-31). Plan the upgrade.
Plus a job-summary table:
Product<br>Status<br>EOL date<br>Found in
nodejs 18<br>🔴 EOL<br>2025-04-30<br>.nvmrc
python 3.10<br>🟡 EOL in 72d<br>2026-10-31<br>Dockerfile
go 1.24<br>🟢 supported<br>2026-08-12<br>go.mod
README badge
Show a live EOL status badge for any version you ship against:

Data
Lifecycle data comes from endoflife.ai — end-of-life<br>dates for 500+ products, verified against vendor sources daily, with<br>EOL Risk Scores and a<br>free API. Underlying community dates from<br>endoflife.date (MIT).
License
MIT
About<br>GitHub Action: fail CI when your stack runs end-of-life software — auto-detects runtimes and Docker base images, powered by endoflife.ai<br>Topics<br>ciend-of-lifeeolgithub-actionslifecyclesecurity<br>Resources<br>Readme<br>MIT license<br>Activity<br>Stars<br>0 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository
Releases
Packages
Contributors
Languages
You can’t perform that action at this time.