🤖
github actionsでjest実行時の「Failed to load SWC binary for linux/x64」を解決する
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ファイルをいじろうと思う
これができると開発が少しは楽になると信じてる
参考サイト
Discussion