発生した問題
ESLintの実行結果を、reviewdogを使ってPull Requestにコメントしている。
ESLint v9にアップデートしたところ、reviewdogがエラーを出力するようになった。
Run pnpm run eslint -f checkstyle | reviewdog -f=checkstyle -name="eslint" -reporter=github-pr-review -fail-on-error=true
The checkstyle formatter is no longer part of core ESLint. Install it manually with `npm install -D eslint-formatter-checkstyle`
reviewdog: EOF
発生した環境
- GitHub Actionsの実行環境:Ubuntu 22.04.4
- reviewdog/action-setup v1.3.0
- reviewdog v0.18.1
- ESLint v9.5.0
原因
reviewdogに与えるESLintの出力フォーマットには、「checkstyle」を採用していた。
ところがESLint v9からは、デフォルトの出力フォーマットから「checkstyle」が削除されていた。
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
解決策
エラーメッセージに従い、eslint-formatter-checkstyleをインストールする。
pnpm install -D eslint-formatter-checkstyle
参考ワークフロー
.github/workflows/eslint.yml
name: eslint
on:
pull_request:
permissions:
contents: read
pull-requests: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
eslint:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- uses: reviewdog/action-setup@v1
with:
reviewdog_version: latest
- uses: pnpm/action-setup@v4
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version-file: ./.node-version
cache: "pnpm"
- name: Install dependencies
run: pnpm install --shamefully-hoist --frozen-lockfile
env:
CI: true
- name: Run eslint
run: |
pnpm run eslint -f checkstyle | reviewdog -f=checkstyle -name="eslint" -reporter=github-pr-review -fail-on-error=true
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}