Show HN: Fail CI when your stack runs end-of-life software

ScottUbiquitous1 pts0 comments

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:

![Node 22 EOL status](https://api.endoflife.ai/v1/badge/nodejs/22)

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.

endoflife life github action version fail

Related Articles