概要
GitLabでソースコードやプロジェクトを管理している場合、CIやCDのためにGitLab CIを使っていることが多いと思います。
ここでは、そのGitLab CIでChromeのヘッドレスブラウザを使い、Node.jsのプロジェクトのテストをする方法を紹介します。
環境
- GitLab 10.4
テスト方法
Node.jsのテストの例として、私の環境ではKarmaを使っていますが、主にChromeのインストール方法について説明するので、Karmaの部分を適切に書き換えれば他のテストフレームワークでも動くはずです。
方法
実際に動作するものを載せておきます。
image: node:latest
stages:
- test
test:
stage: test
script:
- apt-get update
- apt-get install -y gdebi
- curl -O https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- gdebi -n -q google-chrome-stable_current_amd64.deb
- npm install
- ./node_modules/.bin/karma start --single-run
この中でも一番重要なのは、「test.script」の1行目から4行目です。
ここでは、最初の2行でgdebiというものをインストールし、次の2行でインストールしたgdebiを使ってChromeのインストールをしています。
gdebiとは、debパッケージのインストール時にデフォルトのdebコマンドと違い、依存関係を解決してインストールしてくれるものです。Chromeは依存関係が複雑なので、gdebiを使ってサクッと依存関係の解決を図ります。
あとは、curlでChromeのdebパッケージをダウンロードして、gdebiでインストールをすれば、Chromeのインストールは終わりです。Chromeヘッドレスブラウザは、通常のChromeに含まれているため、通常のChromeと同じものをインストールしています。
それ以降の記述は、Karmaのテストのためのものなので、説明しません。
さいごに
当初、debコマンドでChromeのインストールをしようとしたら、依存関係の解決に苦しみ、インストールを断念しようとしていました。しかしgdebiと出会って、劇的にインストールが簡単になりました。
gdebiはCI以外にも使えると思うので、覚えておいて損はないと思います。