窓を作っては壊していた人のブログ

この謎のブログタイトルの由来を知るものはもういないだろう

CircleCIでplaywrightのdependenciesのinstallが止まってしまった

業務ではCircleCIを使っていて、今日困ったことがあったのでメモ。

環境

  • CircleCI
    • image: ubuntu-2204:current(2023.07.2)
  • playwright: 1.38.1

流れ

UIのテストにPlaywrightを使っているのだが、今朝からCIが通らなくなった。 コードの変更はUIに関係ないのになぜだろうとログを見てみると、

                ┌────┤ Daemons using outdated libraries ├─────┐
                │                                             │
                │                                             │
                │ Which services should be restarted?         │
                │                                             │
                │    [*] make: *** [Makefile:67: playwright/setup] Terminated
                │                                             │
Too long with no output (exceeded 10m0s): context deadline exceeded
                │          <Ok>              <Cancel>         │
                │                                             │
                └─────────────────────────────────────────────┘

テストの実行前の環境構築の段階で、なにかの入力待ちで止まってしまっているようだった。 これはPlaywrightで使用するブラウザのインストールと、その依存ライブラリのインストールの時のものだった。

playwright.dev

出てきている文字列で検索すると、以下のようなページが見つかった。

rohhie.net

どうも、Ubuntu 21.x 移行からneedrestartというパッケージがインストールされるようになり、パッケージを更新した際に、再起動が必要なデーモンを教えてくれるようになったらしい。

今までも同様の手順でPlaywrightのセットアップをしていて出ていなかったのはパッケージの更新がなかったからだろうか…

CIで止まってしまうと困るし、またPlaywrightのinstall-depsコマンドにはオプションを渡す手段が存在しないため、needrestartを黙らせる手段を今回は取った。

github.com

一旦再起動が必要なものだけリストするように変更し、re-runで動作することを確認できた。