Node.js CIワークフロー(npm使用)
Node.jsプロジェクト用のGitHub Actions CIワークフローを作成。checkout、setup-node、npm install、lint、test、buildステップとキャッシュを解説。
Basic CI
詳細な説明
Node.js CIパイプラインの構築
Node.js CIワークフローは、JavaScriptまたはTypeScriptプロジェクトの品質保証の基盤です。すべてのpushとpull requestがマージ前にlint、テスト、ビルドチェックを通過することを保証します。
ワークフローYAML
name: Node.js CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Run tests
run: npm test
- name: Build
run: npm run build
主要な概念
npm civsnpm install:npm ciはCIで高速です。package-lock.jsonの内容を正確にインストールし、変更しません。まずnode_modules/を削除してクリーンインストールします。- 組み込みキャッシュ:
actions/setup-node@v4アクションはcache入力をサポートし、npm/yarn/pnpmキャッシュディレクトリを自動的にキャッシュ・復元してインストールを大幅に高速化します。 - ブランチフィルタリング:
mainのみでトリガーすることで、レビュー準備ができていないfeatureブランチでのCI実行を防ぎます(多くのチームは全ブランチでCIを実行します)。
ワークフローの拡張
npm run test -- --coverageでカバレッジステップを追加し、actions/upload-artifactで結果をアップロードします。モノレポの場合、パスフィルタリングを使用して関連パッケージが変更された場合のみCIを実行します。
ユースケース
Node.js Webアプリケーション、REST API、またはnpmパッケージの標準CIパイプライン。マージ前にすべてのコミットがlint、テスト、ビルドを通過することを保証し、開発サイクルの早い段階でリグレッションを検出します。