ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

GitLabでCI/CDする(後日内容更新予定)

GitLabでCI/CDを行う方法はGitLab 8.4くらいがリリースされた頃、確か今から2年前くらいに試したことがあります。 GitLabもそれからずいぶんバージョンアップされたし、そろそろ再調査してみるかと思いました。

参考にした情報源のリンクをまとめます。

Gitlab CIについてのまとめ

GitLab 8以降のバージョンではCI/CDを回すためのサーバー機能はデフォルトで利用できます。コードテストを実行したり、本番環境としてアプリケーションをデプロイする先として利用する環境として「GitLab CI Runner」を用意するというわけです。実際はCI Runnerと何らかのプロセス(例えばDocker)を実行したサーバーをGitLabのプロジェクトと結びつけて利用する形です。CI Runnerを複数用意して、プロジェクトごとに別のものを使うことができます。

Gitlab CI Ruunerのインストール

どこでCI Ruunerを動かすかによって、インストール方法が変わってきます。

利用できるexecutor: docker-ssh, parallels, shell, ssh, virtualbox, docker+machine, docker-ssh+machine, docker, kubernetes

Kubernetes サポート!?

インストール方法など

gitlab-ci-multi-runnerからgitlab-runnerに名前が変わりました。 また、最近のバージョンはKubernetesをデプロイ先として利用できるようです。割と簡単なのはDockerを使う方法です。

.gitlab-ci.ymlの書き方

ここが重要です。このファイルをGitリポジトリーにおいて、コミット時にCIを回すことができます。全てのブランチを対象とすることも、特定のブランチでのみCIを回すこともできます。

Jenkinsを動かすのと比べるとこちらも動かすのは簡単なのですが、.gitlab-ci.ymlの書き方がなかなか難しい印象を受けました。また、CIを回す時のテスト方法も自分で考える必要があり今後の課題です。

(後日内容更新予定)