🤖

github actionsでjest実行時の「Failed to load SWC binary for linux/x64」を解決する

2022/05/17に公開約2,100字

nextjsのテンプレを作成し、ローカルでjestのテストを実行できたのに、github actionsでjestを実行しようとするとタイトルにある「Failed to load SWC binary for linux/x64」のエラーが出たので
どう解消したかを書き留める

結論

結論から言うとcanaryをインストールすることで解決することができました

npm install next@canary  

解消前の状況

  • nextjsのテンレプを使ってリポジトリ作成
  • next.config.jsで「swcMinify: false」を設定
  • .babelrcに"presets": ["next/babel"]を追加
  • Jestのテスト環境作る
  • ciするためにymlファイル作成
  • masterをトリガーにしてjestを実行したが以下のエラーが出る

参考記事にある通り

npm install next@canary  

を実行すると

無事成功

main.yml
name: CI

on:
  push:
    branches:
      - master

jobs:
  build:

    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: frontend

    steps:
      - uses: actions/checkout@v1
      - name: Setup NodeJs
        uses: actions/setup-node@v1
        with:
          node-version: '16.7.0'

      - name: Install Dependencies
        run: npm install
        
      - name: Run Jest Tests
        run : npm run test
package.json

package.json

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "format": "prettier --write --ignore-path .gitignore './**/*.{js,jsx,ts,tsx,json}'",
    "test": "jest",
    "test:ci": "jest -i --ci --runInBand"
  },
  "dependencies": {
    "eslint-config-prettier": "^8.5.0",
    "next": "^12.1.7-canary.6",
    "prettier": "^2.6.2",
    "react": "18.1.0",
    "react-dom": "18.1.0"
  },
  "devDependencies": {
    "@testing-library/jest-dom": "^5.16.4",
    "@testing-library/react": "^13.2.0",
    "@types/jest": "^27.5.1",
    "@types/node": "17.0.33",
    "@types/react": "18.0.9",
    "@types/react-dom": "18.0.4",
    "eslint": "8.15.0",
    "eslint-config-next": "12.1.6",
    "jest": "^28.1.0",
    "jest-environment-jsdom": "^28.1.0",
    "typescript": "4.6.4"
  }
}

まとめ

今回はciを作成したが、次はcdをできるようにymlファイルをいじろうと思う
これができると開発が少しは楽になると信じてる

参考サイト

https://tutorial.tips/how-to-fix-failed-to-load-swc-binary-nextjs/

Discussion

ログインするとコメントできます