Node.js LTS versions
Retrieve a list of Long Term Stable versions of Node.js.
The output of the yaml function is designed to populate a GitHub Actions matrix declaration so that your CI is always testing with every Active LTS version of Node.js.
Usage
This action has three outputs:
-
active
is currently active node.js versions -
lts
is a subset of active versions. -
min
is the lowest LTS version
At the time of writing, active=[14,16,18]
and lts=[14,16]
. Node.js v18 is due to start LTS in five more months.
manually (the normal way)
test:
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
node-version: [ 18, 20 ]
fail-fast: false
steps:
automatically
test:
needs: get-lts
strategy:
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
node-version: ${{ fromJson(needs.get-lts.outputs.lts) }}
fail-fast: false
steps:
get-lts:
runs-on: ubuntu-latest
steps:
- id: get
uses: msimerson/node-lts-versions@v1
outputs:
active: ${{ steps.get.outputs.active }}
lts: ${{ steps.get.outputs.lts }}
min: ${{ steps.get.outputs.min }}
Example
✗ node main.js
::setOutput name=active::["18", "20"]
::setOutput name=lts::["18", "20"]
::setOutput name=min::"18"
RAW
const ltsv = require('node-lts-versions')
ltsv.fetchLTS().then(() => {
console.log(ltsv.json())
console.log(ltsv.yaml())
ltsv.print()
})
Methods
fetch
Retrieves Node.js version information. Prints active LTS versions in several formats.
json
["18", "20"]
yaml
[ '18', '20' ]
Ver Codename Latest Release LTS Period
18 Hydrogen v18.19.0 2023-11-29 2022-04-18 to 2024-10-17
20 Iron v20.11.0 2024-01-09 2023-04-17 to 2025-10-16
Reference
- GitHub Actions: New workflow features
- Using tags for Release management
Future
Got ideas? Contributions are welcome. Submit a PR with tests and it will likely be accepted.