今回はこういった疑問にお答えします。
少しでもGitHub Actions上でJestとESLintを実行する上で参考になれば幸いです。
GitHub Actions上でJestとESLintを実行する
結論から言うと、以下のようなymlファイルを配置することで、GitHub Actions上でJestとESLintを実行することが可能となります。
※DBにDocker、ORMにPrismaの使用を想定しています
name: lint-and-test on: push jobs: lint_and_test: runs-on: ubuntu-latest stetps: - name: checkout code uses: actions/checkout@v3 - name: setup Node.js uses: actions/seup-node@v3 with: node-version: 18 cache: npm - name: install npm packagegs run: npm ci - name: generate prisma client to use prisma run: npx prisma generate - name: execute ESLint uses: reviewdog/action-eslint@1 with: workdir: ./ reporter: github-pr-review fail_on_error: true - name: setup test db run: docker compose up -d db --wait - name: execute unit test env: DATABASE_URL: mysql://user:password@localhost:3306/sample uses: ArtiomTr/jest-coverage-report-action@v2.0-rc.6 with: working-directory: ./ test-script: npm run test
それぞれの処理を簡単に説明していきます。
checkout code
ではコードをチェックアウトしています。
要は、リポジトリのソースコードをcloneしているようなものです。
setup Node.js
では、指定したバージョンのNode.jsをインストールしています。
また、cache: npm
と記述することで、node_modulesをキャッシュすることができます。
これにより、次のステップのnpm ciを高速化することが可能となります。
さらに、generate prisma client to use prisma
ではPrisma Clientをインストールしています。
これによりPrismaを使ってDB操作をすることが可能となります。
execute ESLint
では、reviewdogを使ってESLintを実行しています。
reporter: github-pr-reviewにより、PRで構文エラーを通知してくれます。
さらに、fail_on_error: true
と記述することで、構文エラーを解消するまでプルリクエストのマージができなくなります。
setup test dbではdocker-composeに設定したテスト用のdbを用意しています。
最後のexecute unit test
ではテストの実行をしています。
ArtiomTr/jest-coverage-report-actionを使うことで、プルリクエスト上にテストのカバレッジ情報を通知してくれます。
GitHub Actions上でJestとESLintを実行する:おわりに
今回は、GitHub Actions上でJestとESLintを実行する方法を紹介しました。
この記事がGitHub Actions上でJestとESLintを実行する上で少しでも参考になっていたら幸いです。
最後まで読んでいただきありがとうございました。