Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Set up your GitHub Actions workflow with a specific version of node.js

License

NotificationsYou must be signed in to change notification settings

actions/setup-node

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

basic-validationversionse2e-cacheproxy

This action provides the following functionality for GitHub Actions users:

  • Optionally downloading and caching distribution of the requested Node.js version, and adding it to the PATH
  • Optionally caching npm/yarn/pnpm dependencies
  • Registering problem matchers for error output
  • Configuring authentication for GPR or npm

Usage

Seeaction.yml

-uses:actions/setup-node@v3with:# Version Spec of the version to use in SemVer notation.# It also emits such aliases as lts, latest, nightly and canary builds# Examples: 12.x, 10.15.1, >=10.15.0, lts/Hydrogen, 16-nightly, latest, nodenode-version:''# File containing the version Spec of the version to use.  Examples: .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:''# 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: falsecheck-latest:false# Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.# Default: ''. The action use system architecture by defaultarchitecture:''# 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)## Default: ${{ github.server_url == 'https://github.com' && github.token || '' }}token:''# Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.# Package manager should be pre-installed# Default: ''cache:''# Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc.# It will generate hash from the target file for primary key. It works only If cache is specified.# Supports wildcards or a list of file names for caching multiple dependencies.# Default: ''cache-dependency-path:''# 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: ''registry-url:''# Optional scope for authenticating against scoped registries.# Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/).# Default: ''scope:''# Set always-auth option in npmrc file.# Default: ''always-auth:''

Basic:

steps:-uses:actions/checkout@v4-uses:actions/setup-node@v3with:node-version:18-run:npm ci-run:npm test

Thenode-version input is optional. If not supplied, the node version from PATH will be used. However, it is recommended to always specify Node.js version and don't rely on the system one.

The action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Node.js. It will pull LTS versions fromnode-versions releases and on miss or failure will fall back to the previous behavior of downloading directly fromnode dist.

For information regarding locally cached versions of Node.js on GitHub hosted runners, check outGitHub Actions Runner Images.

Supported version syntax

Thenode-version input supports the Semantic Versioning Specification, for more detailed examples please refer tothe semver package documentation.

Examples:

  • Major versions:14,16,18
  • More specific versions:10.15,16.15.1 ,18.4.0
  • NVM LTS syntax:lts/erbium,lts/fermium,lts/*,lts/-n
  • Latest release:* orlatest/current/node

Note: Like the other values,* will get the latestlocally-cached Node.js version, or the latest version fromactions/node-versions, depending on thecheck-latest input.

current/latest/node always resolve to the latestdist version.That version is then downloaded from actions/node-versions if possible, or directly from Node.js if not.Since it will not be cached always, there is possibility of hitting rate limit when downloading from dist

Checking in lockfiles

It'salways recommended to commit the lockfile of your package manager for security and performance reasons. For more information consult the "Working with lockfiles" section of theAdvanced usage guide.

Caching global packages data

The action has a built-in functionality for caching and restoring dependencies. It usesactions/cache under the hood for caching global packages data but requires less configuration settings. Supported package managers arenpm,yarn,pnpm (v6.10+). Thecache input is optional, and caching is turned off by default.

The action defaults to search for the dependency file (package-lock.json,npm-shrinkwrap.json oryarn.lock) in the repository root, and uses its hash as a part of the cache key. Usecache-dependency-path for cases when multiple dependency files are used, or they are located in different subdirectories.

Note: The action does not cachenode_modules

See the examples of using cache foryarn/pnpm andcache-dependency-path input in theAdvanced usage guide.

Caching npm dependencies:

steps:-uses:actions/checkout@v4-uses:actions/setup-node@v3with:node-version:16cache:'npm'-run:npm ci-run:npm test

Caching npm dependencies in monorepos:

steps:-uses:actions/checkout@v4-uses:actions/setup-node@v3with:node-version:16cache:'npm'cache-dependency-path:subdir/package-lock.json-run:npm ci-run:npm test

Matrix Testing

jobs:build:runs-on:ubuntu-lateststrategy:matrix:node:[ 14, 16, 18 ]name:Node ${{ matrix.node }} samplesteps:      -uses:actions/checkout@v4      -name:Setup nodeuses:actions/setup-node@v3with:node-version:${{ matrix.node }}      -run:npm ci      -run:npm test

Usingsetup-node on GHES

setup-node comes pre-installed on the appliance with GHES if Actions is enabled. When dynamically downloading Nodejs distributions,setup-node downloads distributions fromactions/node-versions on github.com (outside of the appliance). These calls toactions/node-versions are made via unauthenticated requests, which are limited to60 requests per hour per IP. 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.

To get a higher rate limit, you cangenerate a personal access token on github.com and pass it as thetoken input for the action:

uses:actions/setup-node@v3with:token:${{ secrets.GH_DOTCOM_TOKEN }}node-version:16

If the runner is not able to access github.com, any Nodejs versions requested during a workflow run must come from the runner's tool cache. See "Setting up the tool cache on self-hosted runners without internet access" for more information.

Advanced usage

License

The scripts and documentation in this project are released under theMIT License

Contributions

Contributions are welcome! SeeContributor's Guide

Code of Conduct

👋 Be nice. Seeour code of conduct

About

Set up your GitHub Actions workflow with a specific version of node.js

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

[8]ページ先頭

©2009-2025 Movatter.jp