簡単にわかるGitLab CIの仕組み
  • Date:2016-08-09 火 (午前 01:52:39)
  • Updated:2016-10-28 金 (午前 09:01:28)
  • Tags:GitLab CI
  • Category:Programming

GitLab CIのquick startを読んでもしっくり来なかった人向けにGitLab CIの仕組みをまとめました。

特に「Runnerって何?」ってなった人向けです。

(※GitLab CIの導入方法や使い方については触れていません)

GitLab CIの仕組み

GitLab Continuous Integration | GitLab

上のページのArchitectureの図がとてもわかり易いです。

GitLab CI is a part of GitLab, a web application with an API that stores its state in a database. It manages projects/builds and provides a nice user interface, besides all the features of GitLab.

GitLab CIはGitLabの中の一つの機能でありWebアプリケーションとして動いていてprojectsとbuildsを管理するための良い感じのインターフェースを提供しています。

GitLab Runner is an application which processes builds. It can be deployed separately and works with GitLab CI through an API.

GitLab Runnerはビルドのための一つのアプリケーションで、別々の場所で動かすことができ、APIを通してGitLab CIと連携できます。


図を見て分かるように、GitLab RunnerはGitLab本体とは分離して別マシンや別コンテナに配置して、GitLabとGitLab Runner間はAPIで通信する仕組みになっています。

とてもシンプル。

GitLab Runnerの詳細

GitLab RunnerについてはリポジトリのREADMEがわかりやすいです。

GitLab.org / gitlab-ci-multi-runner · GitLab

簡単にまとめると

  • 並列実行や分散実行ができる
  • ビルドはshellやDocker(over sshとコンテナ分散も可能)、sshが使える
  • Goで書かれたシングルバイナリ
  • Ubuntu, Debian, OS X, Windows対応

Windowsにも対応してるのにびっくりしました。心配になりがちな、Windowsへのインストール方法も配置はGoのシングルバイナリをダウンロードして配置するだけで良いので簡単です。Goで書かれてる強みを感じました。

OSXに関してもバイナリをcurlでダウンロードして配置、Linuxに関してはリポジトリと追加してパッケージマネージャでインストールできます。

Dockerの場合はgitlab/gitlab-runnerというイメージが配布されているのでそちらをインストールして利用できます、基本的にUbuntu14.04のようですが、Aplineも使えるようです(gitlab/gitlab-runner:alpine)

GitLab Runnerという名前についてですが、プロジェクトの名前はGitLab CI Multi Runnerで、GitLab CI Runnerと呼ばれていることが多いですが、今は"GitLab Runner"と呼んで欲しいみたいです。

まとめ

ArchitectureもシンプルでGitLab CI良いなぁとなりました。

Runnerについてのさらに詳しいことやわからないことは、GitLab Runnerの公式リポジトリを見てみると良いと思います。

個人的にはWindowsでのCIに悩んでいたので、Jenkinsに手を出さないでGitLab CIだけで全て収まりそうなのでテンション上がっています。

Show comments

Adsense

Share

  • このエントリーをはてなブックマークに追加

About

どこにでもいる平凡なプログラムを書く人間のログ。

Recently

Tags

Pages

-->