GitLabCIを利用してRailsアプリの試験とコンテナ作成を自動化する

はじめに

CIというとJenkinsを利用されている方は非常に多いと思います。Jenkinsはとても優れたソフトウェアです。しかしながら、彼が行えることは限られております。何故ならば彼はCIに特化したソフトウェアだからです。

私個人の意見としては、開発規模の大小に関わらず、開発に利用するサービスはできる限り数を減らしたい、という思いがございます。シンプルイズベストです。そう考えた時、Jenkinsの代わりに挙がるのがGitLabです。

何故ならば、GitlabにはJenkinsにも負けないCIや、更にはdockerイメージのリポジトリーまでもが無料で付いてくるのです。しかもソースコードの管理まで行えるのです。貧乏な個人開発者としては、これほどありがたいサービスはございません。

実装

GitlabCIに指示を出すには、プロジェクトのルートディレクトリに.gitlab-ci.ymlというファイルを用意します。こちらのファイルをコミットに含めると、あとはGitLab側が勝手に作業を行ってくれます。

上記のコードでは、cucumberによる試験の実施した後、試験が完了したコード一式をdockerのコンテナイメージとしてbuildして、Gitlabが提供するリポジトリにプッシュするところまでを行います。

stagesで指定した順番に逐一処理は流れます。

それぞれのstageでscriptの処理内容はリセットされますので、必要に応じてchaceを利用することが求められます。とくにbundle installなどの時間が掛かる処理は、かならずcacheに指定しておきましょう。

そして、これがgit pushのたびに自動で走ります。

GitLabはなんて便利なのでしょう。

正直に告白すると、私は以前からGitHubよりもGitLabの方が好みです。

今はただただ、サービスのSLAが向上するのを祈るばかりでございます。

どうしてGitLabはすぐに止まってしまうのでしょう。

Rails

Posted by poison