😎
GitHub Actionsで、.node-versionで指定されているバージョンのNode.jsをセットアップする
Node.jsを使うプロジェクトで、リポジトリに.node-versionというファイルを置き、使用するNode.jsのバージョンをそのファイルで指定することはよくあります。
例えば.node-versionに
16.15.1
と記述しておくと、.node-versionをサポートするツール(nodenvやasdfなど)がインストールされている環境なら、そのファイルのあるディレクトに入ると自動的にNode.jsのバージョンが16.15.1に切り替わります。
さて、GitHub Actionsのワークフローで、setup-nodeを使ってNode.jsをセットアップすることはよくあります。リポジトリに.node-versionがある場合、GitHub Actionsのワークフローでも.node-versionで指定されているバージョンのNode.jsをセットアップできないでしょうか?
そう思って調査したところ、setup-nodeにnode-version-fileというパラメータがあり、それにリポジトリのルートからの.node-versionのパスを渡したら実現できました。次がその例です。
name: Run test on pull request
on:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: ./.node-version
- name: Check Node.js version
run: node --version
- name: Install dependencies
run: yarn install --immutable
- name: Run test
run: yarn test
これはプルリクエストが発生したときに、yarnでテストを実行するワークフローです。stepsの「Setup Node.js」で、リポジトリのルートにある.node-versionで指定されているバージョンのNode.jsがセットアップされます。
Discussion