このアクションは、GitHub Actions ユーザーに次の機能を提供します。
必要に応じて、要求された Node.js バージョンの配布をダウンロードしてキャッシュし、PATH に追加します。
オプションで npm/yarn/pnpm 依存関係をキャッシュする
エラー出力用の問題マッチャーの登録
GPR または npm の認証の構成
action.yml を参照してください。
- 使用:actions/setup-node@v4 with:# SemVer 表記で使用するバージョンのバージョン仕様。# lts/*、latest、nightly、canary ビルドなどのエイリアスも許可されます# 例: 12.x、10.15.1、>=10.15.0、lts/ Hydrogen、16 泊、最新、nodenode-version: ''# 使用するバージョンのバージョン仕様を含むファイル。 例: package.json、.nvmrc、.node-version、.tool-versions.# node-version とnode-version-file の両方が指定された場合、アクションでは、node-version のバージョンが使用されます。 node-version-file: ''# バージョン仕様を満たす最新の利用可能なバージョンをアクションでチェックする場合は、このオプションを設定します。# これは、lts Nodejs バージョン (12.x、>=10.15.1) にのみ影響します。 0、lts/水素)。 # デフォルト: falsecheck-latest: false# ノードが使用するターゲット アーキテクチャ。例: x86、x64。デフォルトではシステム アーキテクチャが使用されます。# デフォルト: ''。このアクションは、デフォルトのアーキテクチャでシステム アーキテクチャを使用します: ''# https://github.com/actions/node-versions からノード ディストリビューションをプルするために使用されます。 # デフォルトがあるため、これは通常ユーザーによって指定されません。 # github.com でこのアクションを実行する場合は、デフォルト値で十分です。 # GHES で実行する場合、レート制限が発生している場合は、github.com の個人アクセス トークンを渡すことができます。## 必要最小限の権限を持つサービス アカウントを使用することをお勧めします。また#新しい PAT を生成するときは、必要最小限のスコープを選択してください。## [暗号化されたシークレットの作成と使用の詳細](https://help.github.com/en/actions/automating-your-workflow-with-github) -actions/creating-and-using-encrypted-secrets)## デフォルト: ${{ github.server_url == 'https://github.com' &&ギットハブ.トークン || '' }}token: ''# デフォルトのディレクトリにキャッシュするパッケージ マネージャーを指定するために使用されます。サポートされている値: npm、yarn、pnpm.# パッケージ マネージャーを事前にインストールする必要があります# デフォルト: ''cache: ''# 依存関係ファイルへのパスの指定に使用されます: package-lock.json、yarn.lock など #主キーのターゲットファイルからハッシュを生成します。キャッシュが指定されている場合にのみ機能します。 # 複数の依存関係をキャッシュするためのワイルドカードまたはファイル名のリストをサポートします。# デフォルト: ''cache-dependency-path: ''# 認証用にセットアップするオプションのレジストリ。プロジェクト レベルの .npmrc および .yarnrc ファイルにレジストリを設定し、 # env.NODE_AUTH_TOKEN から読み込むように認証を設定します。# デフォルト: ''registry-url: ''# スコープ指定されたレジストリに対して認証するためのオプションのスコープ。 # GitHub パッケージ レジストリ (https://npm.pkg.github.com/) を使用する場合は、リポジトリ所有者にフォールバックします。# デフォルト: ''scope: ''# npmrc ファイルに always-auth オプションを設定します。# デフォルト: ''常に認証: ''
基本:
手順: - 使用:actions/checkout@v4 - 使用:actions/setup-node@v4 with:node-version: 18- run: npm ci- run: npm test
node-version
入力はオプションです。指定しない場合は、PATH のノード バージョンが使用されます。ただし、システムのバージョンに依存せず、常に Node.js のバージョンを指定することをお勧めします。
このアクションでは、まずローカル キャッシュでサーバーの一致がチェックされます。キャッシュ内に特定のバージョンが見つからない場合、アクションは Node.js のバージョンをダウンロードしようとします。ノード バージョンのリリースから LTS バージョンをプルし、失敗または失敗した場合は、ノード dist から直接ダウンロードする以前の動作に戻ります。
GitHub でホストされているランナー上でローカルにキャッシュされたバージョンの Node.js については、GitHub Actions Runner Images を確認してください。
node-version
入力はセマンティック バージョニング仕様をサポートしています。詳細な例については、semver パッケージのドキュメントを参照してください。
例:
メジャー バージョン: 18
、 20
より具体的なバージョン: 10.15
、 16.15.1
、 18.4.0
NVM LTS 構文: lts/erbium
、 lts/fermium
、 lts/*
、 lts/-n
最新リリース: *
またはlatest
/ current
/ node
注:他の値と同様に、 *
、 check-latest
入力に応じて、ローカルにキャッシュされた最新の Node.js バージョン、またはアクション/ノード バージョンから最新バージョンを取得します。
current
/ latest
/ node
常に最新の dist バージョンに解決されます。そのバージョンは、可能な場合はアクション/ノード バージョンからダウンロードされ、そうでない場合は Node.js から直接ダウンロードされます。常にキャッシュされるわけではないため、dist からダウンロードするとレート制限に達する可能性があります
セキュリティとパフォーマンス上の理由から、パッケージ マネージャーのロックファイルをコミットすることを常にお勧めします。詳細については、高度な使用法ガイドの「ロックファイルの操作」セクションを参照してください。
このアクションには、依存関係をキャッシュおよび復元するための機能が組み込まれています。グローバル パッケージ データをキャッシュするために内部でアクション/キャッシュを使用しますが、必要な構成設定は少なくなります。サポートされているパッケージ マネージャーは、 npm
、 yarn
、 pnpm
(v6.10 以降) です。 cache
入力はオプションであり、キャッシュはデフォルトではオフになっています。
このアクションのデフォルトでは、リポジトリ ルートで依存関係ファイル ( package-lock.json
、 npm-shrinkwrap.json
、またはyarn.lock
) を検索し、そのハッシュをキャッシュ キーの一部として使用します。複数の依存関係ファイルが使用されている場合、または依存関係ファイルが異なるサブディレクトリに配置されている場合は、 cache-dependency-path
を使用します。
注:このアクションは、 node_modules
をキャッシュしません。
高度な使用法ガイドで、 yarn
/ pnpm
およびcache-dependency-path
入力のキャッシュの使用例を参照してください。
npm 依存関係のキャッシュ:
手順: - 使用:actions/checkout@v4 - 使用:actions/setup-node@v4 with:node-version: 20cache: 'npm'- run: npm ci- run: npm test
モノリポジトリでの npm 依存関係のキャッシュ:
手順: - 使用:actions/checkout@v4 - 使用:actions/setup-node@v4 with:node-version: 20cache: 'npm'cache-dependency-path: subdir/package-lock.json-run: npm ci- run: npm test
ジョブ: ビルド: 実行: ubuntu-lateststrategy: マトリックス: ノード: [ 14, 16, 18 ] 名前: ノード ${{ マトリックス.ノード }} サンプルステップ: - 使用:actions/checkout@v4 - 名前:セットアップノード使用:actions/setup-node@v4with:node-version:${{matrix.node }} -実行:npm ci -実行:npm test
setup-node
の使用アクションが有効な場合、 setup-node
GHES とともにアプライアンスにプリインストールされます。 Nodejs ディストリビューションを動的にダウンロードする場合、 setup-node
github.com (アプライアンスの外部) 上のactions/node-versions
からディストリビューションをダウンロードします。 actions/node-versions
へのこれらの呼び出しは、認証されていないリクエストを介して行われ、IP ごとに 1 時間あたり 60 リクエストに制限されます。時間枠内にさらに多くのリクエストが行われると、ダウンロード中に次のようなレート制限エラーが表示され始めます: ##[error]API rate limit exceeded for...
。このエラーの後、アクションは公式サイトからバージョンを直接ダウンロードしようとしますが、レート制限がある可能性があるため、トークンを置くことをお勧めします。
より高いレート制限を取得するには、github.com で個人アクセス トークンを生成し、それをアクションのtoken
入力として渡します。
使用:actions/setup-node@v4with:トークン: ${{ Secrets.GH_DOTCOM_TOKEN }} ノードバージョン: 20
ランナーが github.com にアクセスできない場合、ワークフローの実行中にリクエストされた Nodejs バージョンはランナーのツール キャッシュから取得する必要があります。詳細については、「インターネット アクセスを使用しないセルフホスト ランナーでのツール キャッシュの設定」を参照してください。
最新バージョンを確認する
ノードバージョンファイルの使用
異なるアーキテクチャの使用
v8 Canary バージョンの使用
夜間バージョンの使用
rc バージョンの使用
パッケージデータのキャッシュ
複数のオペレーティング システムとアーキテクチャの使用
npmjs および npm を使用した GPR へのパブリッシュ
Yarn を使用した npmjs および GPR へのパブリッシュ
プライベートパッケージの使用
このプロジェクトのスクリプトとドキュメントは、MIT ライセンスに基づいてリリースされています。
貢献は大歓迎です!寄稿者向けガイドを参照
優しくしてね。当社の行動規範をご覧ください