Compare commits

...

8 Commits

Author SHA1 Message Date
Ari Kishon
798c343d4b
Merge 1dbaf4855d into 7247617371 2023-12-13 20:08:42 +03:00
Róbert Papp
7247617371
Add package.json to node-version-file list of examples. (#879) 2023-12-13 13:02:47 +01:00
fusagiko / takayamaki
f3ec4ca66f
Fix README.md (#898)
* Fix URL of locally-cached Node.js version in README

* Change example of Major versions in Supported version syntax

setup-node v4 supports node v20, but these example may
cause misunderstanding like a v20 is not supported.

---------

Co-authored-by: fusagiko/takayamaki <takayamaki@users.noreply.github.com>
2023-12-13 12:46:19 +01:00
aparnajyothi-y
ec97f37504
Add fix for cache (#917) 2023-12-13 12:42:40 +01:00
Ari Kishon
1dbaf4855d
chore: update readme 2023-08-31 15:39:42 +03:00
Ariki
0e31e1abff fix typo 2023-08-31 15:27:44 +03:00
Ariki
99e06de4da build 2023-08-31 13:07:22 +03:00
Ari Kishon
860bb139dc
feat(cache): add flag to only restore cache 2023-08-31 12:29:33 +03:00
4 changed files with 1762 additions and 1728 deletions

View File

@ -25,7 +25,7 @@ See [action.yml](action.yml)
# Examples: 12.x, 10.15.1, >=10.15.0, lts/Hydrogen, 16-nightly, latest, node
node-version: ''
# File containing the version Spec of the version to use. Examples: .nvmrc, .node-version, .tool-versions.
# File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions.
# If node-version and node-version-file are both provided the action will use version from node-version.
node-version-file: ''
@ -63,6 +63,10 @@ See [action.yml](action.yml)
# Default: ''
cache-dependency-path: ''
# Set this option if you dont want the action to save the cache if it couldnt be restored
# Default: false
cache-restore-only: ''
# Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file,
# and set up auth to read in from env.NODE_AUTH_TOKEN.
# Default: ''
@ -103,12 +107,12 @@ The `node-version` input supports the Semantic Versioning Specification, for mor
Examples:
- Major versions: `14`, `16`, `18`
- Major versions: `16`, `18`, `20`
- More specific versions: `10.15`, `16.15.1` , `18.4.0`
- NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
- Latest release: `*` or `latest`/`current`/`node`
**Note:** Like the other values, `*` will get the latest [locally-cached Node.js version](https://github.com/actions/runner-images/blob/main/images/linux/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.
**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.
`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.

View File

@ -8,7 +8,7 @@ inputs:
node-version:
description: 'Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0.'
node-version-file:
description: 'File containing the version Spec of the version to use. Examples: .nvmrc, .node-version, .tool-versions.'
description: 'File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions.'
architecture:
description: 'Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.'
check-latest:
@ -25,6 +25,9 @@ inputs:
description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
cache-dependency-path:
description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
cache-restore-only:
description: 'Set this option if you dont want to save the cache when it couldnt be restored.'
default: false
# TODO: add input to control forcing to pull from cloud or dist.
# escape valve for someone having issues or needing the absolute latest which isn't cached yet
outputs:

3455
dist/cache-save/index.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -12,10 +12,20 @@ process.on('uncaughtException', e => {
core.info(`${warningPrefix}${e.message}`);
});
export async function run() {
// Added early exit to resolve issue with slow post action step:
export async function run(earlyExit?: boolean) {
try {
const cacheLock = core.getState(State.CachePackageManager);
await cachePackages(cacheLock);
if (cacheLock) {
await cachePackages(cacheLock);
if (earlyExit) {
process.exit(0);
}
} else {
core.debug(`Caching for '${cacheLock}' is not supported`);
}
} catch (error) {
core.setFailed((error as Error).message);
}
@ -33,6 +43,10 @@ const cachePackages = async (packageManager: string) => {
core.debug(`Caching for '${packageManager}' is not supported`);
return;
}
if (core.getInput('cache-restore-only') == 'true') {
core.info(`Cache was not saved since 'cache-restore-only' was set to true`);
return;
}
if (!cachePaths.length) {
// TODO: core.getInput has a bug - it can return undefined despite its definition (tests only?)
@ -58,4 +72,4 @@ const cachePackages = async (packageManager: string) => {
core.info(`Cache saved with the key: ${primaryKey}`);
};
run();
run(true);