😎

yarn workspaces環境下でdependabotのPR生成がコケた

2024/02/08に公開

dependabotについて

githubの「Dependency graph」 -> 「Dependabot」から表示されるこんなのです。
.github/dependabot.ymlを作成すると決まった時間にライブラリのアップデートPRを作ってくれる便利くんです。

エラー

ずっとこんなエラーが表示されていて、なんのエラーかわからずずっと悩んでいました。

updater | 2024/01/25 05:32:06 ERROR <job_778598622> Internal Error: Expected value (null) to be a string in /home/dependabot/dependabot-updater/repo/frontend/.yarnrc.yml (in /home/dependabot/dependabot-updater/repo/frontend/.yarnrc.yml)

調べいくと、.yarnrc.ymlの中でエラーが起きていそうだということがわかってきました。

何が原因だったのか

単純に.yarnrc.ymlの書き方が悪かっただけでした。

弊社ではfontawesomeの有料版を使っているため、トークンを設定する必要がありましたが、ダブルクォーテーションで囲ってあげないとgithub上での動作がうまくいかず落ちていたようでした(ローカルや本番環境では普通に動くのにね。。

nodeLinker: node-modules
nmHoistingLimits: workspaces

plugins:
  - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
    spec: "@yarnpkg/plugin-workspace-tools"

yarnPath: .yarn/releases/yarn-3.4.1.cjs

npmRegistries:
    //npm.fontawesome.com/:
      npmAuthToken: "${FONTAWESOME_NPM_AUTH_TOKEN}" // ここのクォーテーションが抜けていた
npmScopes:
    fortawesome:
      npmRegistryServer: https://npm.fontawesome.com/

教訓

今回は凡ミスで2時間ぐらい溶かしてしまいましたが、以下が教訓になったのかなと思います。

  1. ちゃんとエラーの内容は読む。(今回はin /home/dependabot/dependabot-updater/repo/frontend/.yarnrc.ymlという文言をちゃんと見ればどこが悪いのかはすぐわかったはず。
  2. 問題が起きたらすぐ直そうとせず、同じような状況を再現できる環境を用意する。
    (今回みたいにデプロイしないと検証できないのはつらいのでとにかく早く検証できる状態することで早期解決に近づく

最後に

初めての記事だったので軽めにしておきましたが、次も頑張ります。

SMARTCAMP Engineer Blog

Discussion