業務ではCircleCIを使っていて、今日困ったことがあったのでメモ。
環境
流れ
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で使用するブラウザのインストールと、その依存ライブラリのインストールの時のものだった。
出てきている文字列で検索すると、以下のようなページが見つかった。
どうも、Ubuntu 21.x 移行からneedrestartというパッケージがインストールされるようになり、パッケージを更新した際に、再起動が必要なデーモンを教えてくれるようになったらしい。
今までも同様の手順でPlaywrightのセットアップをしていて出ていなかったのはパッケージの更新がなかったからだろうか…
CIで止まってしまうと困るし、またPlaywrightのinstall-depsコマンドにはオプションを渡す手段が存在しないため、needrestartを黙らせる手段を今回は取った。
一旦再起動が必要なものだけリストするように変更し、re-runで動作することを確認できた。