🧊

CircleCIでFirefoxHeadlessを使う

まあ手動でインストールすればいいんですけど、それより身近な手段あるやん!って飛びついてダメだった学びをメモ。

ちなみにHeadlessモードは、`-headless`フラグで有効にできて、プラットフォームによりつつ`v55` or `v56`から使える。

愚直にapt-get

apt-get update
apt-get install -y firefox

これダメ。

`v49`くらいの古いやつが落ちてくる。

circleci/node

手動でインストールすればいいって言っても、やっぱりブラウザをコマンドラインからいちいちインストールするのは面倒くさい。

ありがたいことに、CircleCIが公式イメージとして用意してくれてるのでそれを使いたくなるのが怠惰なエンジニアなはず。

https://hub.docker.com/r/circleci/node/

たとえばこのイメージで`circleci/node:8.11.0-browsers`とかすると、NodeだけでなくChromeFirefoxがついてくる。

ただ、このFirefoxのバージョンも古い・・。

Please include Firefox 56+ in the browsers image · Issue #86 · circleci/circleci-images · GitHub

そして残念ながら当面はアップデートされなそう。

なので

↑のIssueにあるコードを参考にして、自分で`run`でインストールする。

  • GeckoDriverは必要に応じて
  • `apt-get remove firefox-mozilla-build`は、既にFirefoxが入ってるイメージでのみ必要

得体の知れないイメージ使うのも抵抗あるけど、自分で秘伝のRUNコマンドでイメージ作るのも抵抗ある・・。

まあFirefoxだけじゃなく、Chromeも若干古いバージョンなんやけど、Headlessモードは使えるのでまあ・・。