【入門編】CI/CDでコード品質を担保する!GitHub ActionsでESLint・Prettierを自動実行する方法 – デバッグ・コード品質・テストツール生産性向上バイブル

こんにちは。現場で戦うエンジニアの皆さん、あるいはこれから最前線を目指す皆さん。

「コードの品質を担保する」と聞くと、多くの人が「面倒な作業」や「人間がやらなきゃいけないチェック」を想像します。しかし、一流の現場では違います。「品質チェックは、人間が意識せずとも、自動的に、かつ強制的に行われるもの」であり、それこそが開発速度を最大化する秘訣です。

今日は、ESLintとPrettierをGitHub Actionsと組み合わせ、あなたのリポジトリを「自動で品質が保たれる聖域」に変えるための、本質的な話をしましょう。

—

1. なぜ「手動チェック」が開発を殺すのか

まず、役割の再定義をしましょう。

  • ESLint: コードの「論理的なミス」や「アンチパターン」を排除するガードマン。
  • Prettier: コードの「見た目」を統一し、議論を無意味にする秘書。

これらを個人のPCで実行するだけでは不十分です。「動けばいい」という甘えや、設定を忘れた同僚のコードが混入した瞬間に、品質の防波堤は崩壊します。CI/CDでGitHub Actionsを導入するのは、「守れないルールは存在しないのと同じ」という現実を突きつけるためです。

—

2. 実践:最強のCIパイプラインを構築する

単にコマンドを叩くだけでは、CIはすぐに「遅い」と見捨てられます。キャッシュを活用し、無駄な処理を徹底的に排除した設定を見ていきましょう。

GitHub Actionsの構築(`.github/workflows/lint.yml`)

name: Quality Gate # パイプラインの名称

on:
pull_request: # プルリクエスト作成時のみ発火させることで、無駄なCIコストを削減
branches: [main]

jobs:
lint-and-format:
runs-on: ubuntu-latest
steps:

  • uses: actions/checkout@v4 # リポジトリのクローン
  • name: Setup Node.js

uses: actions/setup-node@v4
with:
node-version: ’20’
cache: ‘npm’ # ここが重要:npmの依存関係をキャッシュし、インストールを爆速化

  • name: Install dependencies

run: npm ci # npm installではなくciを使う。lockファイル通りの依存関係を生成し、再現性を保証する

  • name: Run Lint & Format Check

run: |
# Prettierのチェック:フォーマットが崩れていればエラーを吐く
npx prettier –check .
# ESLintの実行:ルール違反があれば即座にパイプラインを停止
npx eslint . –max-warnings 0

—

3. なぜこの設定が「現場」で評価されるのか

1. `npm ci` の絶対性

`npm install` はパッケージを更新する可能性がありますが、`npm ci` は `package-lock.json` に完全に準拠します。CI環境で「ローカルでは動いたのに!」という悲劇を防ぐための必須コマンドです。

2. `–max-warnings 0` の哲学

ESLintはデフォルトで警告(Warning)を出しますが、放置すると警告は肥大化します。`–max-warnings 0` を指定することで、些細な警告すらも「エラー」として扱い、技術的負債の蓄積を物理的に防ぎます。

3. キャッシュ戦略の賢明さ

GitHub Actionsの `cache: ‘npm’` を有効にすることで、node_modulesの再インストール時間を数分から数秒へ短縮できます。開発体験(DX)を損なわないことが、チームにツールを定着させる最大のコツです。

—

4. 導入後の「HelloWorld」的動作確認

設定が終わったら、あえてルールを破ったコードをコミットして、プルリクエストを送ってみてください。

1. わざとPrettierのルールを破る: インデントを適当に崩したり、ダブルクォートをシングルに変えたりする。
2. わざとESLintのルールを破る: 未使用の変数(`const x = 1;` と書くだけで使わないなど)を宣言する。

結果:
GitHubのプルリクエスト画面で、ステータスチェックが「×(失敗)」になりますよね? これこそが、「あなたの代わりにツールが品質を監視してくれている」という、最強の安心感です。

—

最後に:ツールに支配されるな、ツールを使い倒せ

この仕組みを導入すれば、レビューの現場から「ここ、インデントずれてますよ」「この変数使ってませんよ」という、人間がやる必要のない低レベルな指摘が消滅します。

レビューで議論すべきは「コードの書き方」ではなく、「ビジネスロジックの妥当性」や「設計の美しさ」です。機械に任せられることは機械に任せ、あなたはあなたにしかできない「人間らしい創造的な判断」に集中してください。

この設定をマスターすれば、あなたのコードはGitHub上で常に磨かれ、チームの誰が触っても清潔な状態が保たれます。さあ、今すぐパイプラインを走らせて、開発環境を一段上のレベルへ引き上げましょう。

応援していますよ。

タイトルとURLをコピーしました