Add Caching Caveat note, add `check-latest: true` to examples

pull/1114/head
Karl Horky 2025-03-06 17:00:28 +01:00 committed by GitHub
parent f454ce2807
commit 6f485d0d11
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 7 deletions

View File

@ -87,6 +87,7 @@ steps:
- uses: actions/setup-node@v4
with:
node-version: 18
check-latest: true
- run: npm ci
- run: npm test
```
@ -103,14 +104,13 @@ The `node-version` input supports the Semantic Versioning Specification, for mor
Examples:
- Major versions: `18`, `20`
- More specific versions: `10.15`, `16.15.1` , `18.4.0`
- NVM LTS syntax (beware of caveat below): `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
- Latest release: `*` or `latest`/`current`/`node`
- Specific versions: `10.15`, `16.15.1` , `18.4.0`
- Version ranges (see **Caching Caveat** below)
- Major versions: `18`, `20`
- NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
- Latest release: `*` or `latest`/`current`/`node`
**Caveat for NVM syntax:** There is currently no way to ensure that NVM version syntax like `lts/*` will receive the latest LTS release immediately - it can take days to update to the latest LTS because of cache implementation details (see [this issue]([https://github.com/actions/setup-node](https://github.com/actions/setup-node/issues/940#issuecomment-2029638604))). If you need the latest LTS versions in a timely manner, it is recommended to use a different action than `actions/setup-node`.
**Note:** Like the other values, `*` will get the latest [locally-cached Node.js version](https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#nodejs), or the latest version from [actions/node-versions](https://github.com/actions/node-versions/blob/main/versions-manifest.json), depending on the [`check-latest`](docs/advanced-usage.md#check-latest-version) input.
**Caching Caveat:** Version ranges may be cached for an indefinite time without the `check-latest: true` option - they may be stale for [durations up to 1 month](https://github.com/actions/setup-node/issues/1236#issuecomment-2704188519)
`current`/`latest`/`node` always resolve to the latest [dist version](https://nodejs.org/dist/index.json).
That version is then downloaded from actions/node-versions if possible, or directly from Node.js if not.
@ -138,6 +138,7 @@ steps:
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
cache: 'npm'
- run: npm ci
- run: npm test
@ -151,6 +152,7 @@ steps:
- uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
cache: 'npm'
cache-dependency-path: subdir/package-lock.json
- run: npm ci
@ -173,6 +175,7 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
check-latest: true
- run: npm ci
- run: npm test
```