今回はこういった疑問にお答えします。
少しでも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を実行する上で少しでも参考になっていたら幸いです。
最後まで読んでいただきありがとうございました。
 
	
 
	

 
	
 
	
 
	
 
	
 
	
 
	
 
	
 
	
 
	
