# If node-version and node-version-file are both provided the action will use version from node-version.
node-version-file:''
# Set this option if you want the action to check for the latest available version
# that satisfies the version spec.
# It will only get affect for lts Nodejs versions (12.x, >=10.15.0, lts/Hydrogen).
# Default: false
check-latest:false
# Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.
# Default: ''. The action use system architecture by default
architecture:''
# Used to pull node distributions from https://github.com/actions/node-versions.
# Since there's a default, this is typically not supplied by the user.
# When running this action on github.com, the default value is sufficient.
# When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting.
#
# We recommend using a service account with the least permissions necessary. Also
# when generating a new PAT, select the least scopes necessary.
#
# [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
Theactionwillfirstcheckthelocalcacheforasemvermatch.Ifunabletofindaspecificversioninthecache,theactionwillattempttodownloadaversionofNode.js.ItwillpullLTSversionsfrom[node-versionsreleases](https://github.com/actions/node-versions/releases) and on miss or failure will fall back to the previous behavior of downloading directly from [node dist](https://nodejs.org/dist/).
**Note:**Liketheothervalues,`*`willgetthelatest[locally-cachedNode.jsversion](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.
It's**always**recommendedtocommitthelockfileofyourpackagemanagerforsecurityandperformancereasons.Formoreinformationconsultthe"Working with lockfiles"sectionofthe[Advancedusage](docs/advanced-usage.md#working-with-lockfiles)guide.
Theactionhasabuilt-infunctionalityforcachingandrestoringdependencies.Ituses[actions/cache](https://github.com/actions/cache) under the hood for caching global packages data but requires less configuration settings. Supported package managers are `npm`, `yarn`, `pnpm` (v6.10+). The `cache` input is optional, and caching is turned off by default.
`setup-node`comespre-installedontheappliancewithGHESifActionsisenabled.WhendynamicallydownloadingNodejsdistributions,`setup-node`downloadsdistributionsfrom[`actions/node-versions`](https://github.com/actions/node-versions) on github.com (outside of the appliance). These calls to `actions/node-versions` are made via unauthenticated requests, which are limited to [60 requests per hour per IP](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting). If more requests are made within the time frame, then you will start to see rate-limit errors during downloading that looks like: `##[error]API rate limit exceeded for...`. After that error the action will try to download versions directly from the official site, but it also can have rate limit so it's better to put token.
Togetahigherratelimit,youcan[generateapersonalaccesstokenongithub.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
Iftherunnerisnotabletoaccessgithub.com,anyNodejsversionsrequestedduringaworkflowrunmustcomefromtherunner'stoolcache.See"[Setting up the tool cache on self-hosted runners without internet access](https://docs.github.com/en/enterprise-server@3.2/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)"formoreinformation.