t4traw.net👨‍💻GitHubからGitLabに移行したので、GitLab-CI(Docker環境)でRails+MinitestをHeadlessChromeで回そうと思ったらめっちゃ大変だった2018-06-07GitHubがMicrosoftに買収されて、GitLabに移行するのがブーム(🏄❓)になっています。自分としては最近のMicrosoftなかなか良いので、まあGitHubも大丈夫なんじゃないの?とは思いますが、もともとGitLabは好印象なサービスだったので、いい機会だからプライベートリポジトリはGitLabに移行してみることにしてみました。CIなるものが標準であるようなので、せっかくだからこちらを使ってみようと思ったら......めっちゃ大変だったので、ここに2018年6月7日時点で無事動いた内容を書いておきます😭とりあえずRails+Minitestな環境で、簡単なE2Eテストを動かしてみたリポジトリがこちら。https://gitlab.com/t4traw/hello-gitlab-ci最終的に.gitlab-ci.ymlはこんな感じになりました。test:system以下、大変だったことをつらつらと。nodejsとしか書いていないので、そのとおりにしたらapt-getで落ちてくるnodejsのバージョンが4.3という問題。2018年6月7日時点で最新のnodejsは10.4。--ignore-enginesすれば大丈夫?と思ったけど、やっぱりダメだった。-してインストールして最新のnodejsを入れました。bashでインストールし、更にPATHを通すことでyarnが使えるようになりました。existというエラーが出て、何度もセッティングを書き直してトライ&エラーを繰り返しました。正解かどうかはまだ不安なのですが、とりあえず自分の環境ではapplication_system_test_case.rbに、こんな具合に書けばうまくいきました。processingエラーが発生する手元ではbrakemanのテスト通っているのに、CIだと落ちる。HubのRubyコンテナの文字コードがUS-ASCIIらしく、RUBYOPT=--encoding=UTF-8と環境変数に追加する必要がありました。んでもまあこういう経験で詳しくなっていく部分はありますよね。GitLabですが、もともと違和感あった「プルリクエスト」という言葉が「マージリクエスト」だったり、テスト落ちたのをIssue作れたり、標準でIssueが管理しやすかったりと、こっちのほうが良くない?と思う部分がたくさんありました。GitLabを使ってみようと思います。