LoginSignup
5
6

More than 5 years have passed since last update.

Docker + nginx-proxyでGitLab CI環境を作ってみる(3)

Last updated at Posted at 2016-02-02

前回の続きです。

Docker + nginx-proxyでGitLab CI環境を作ってみる(2)
http://qiita.com/ABE_TAKASHI/items/deb516d44459eb901961


2016年2月11日追記

以下に「GitLab-CI環境の設定は基本はプロジェクトごと」みたいなこと書きましたが、普通にGitLab全体で使えるRunnerを登録することができますね… 登録後に各プロジェクトでそのRunnerを使うかどうかの設定をするようなインターフェースがありました。大人数で動かすプロジェクトを複数管理することがなければ、1つだけRunnerを登録しておけば事足りるような気がします。Runnerの登録の仕方などは、以下の説明と大差ありませんので、そちらをご参考ください。


GitLab-CI環境の設定は基本はプロジェクトごとになります(シェアもできるようですが)。WEBインターフェース上にてプロジェクトの「Settings」→「Runners」とたどると、以下のような記載がありますので、これを元にしてコマンドライン上から設定します(ここまでできてるならWEB上で完結させてほしいですが…)。

gitlab2.png

以下はコマンドラインからです。対話式のスクリプトが走るので、基本は上の図に書かれたとおりに応答します。

[docker-op@gitlab]$ docker exec -it gitlab-runner gitlab-runner register

Running in system-mode.

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci):
http://[これまでに設定したURL]/ci

Please enter the gitlab-ci token for this runner:
UqHdxozH4z2pUgcCNPoi

Please enter the gitlab-ci description for this runner:
[72b6d08d0e51]: 
test0002(Runnerに名前をつけてあげてください)

Please enter the gitlab-ci tags for this runner (comma separated):
(ここでは未入力、タグはあとでも編集できます)

Registering runner... succeeded                     runner=vxGb_9Jx
Please enter the executor: docker, docker-ssh, virtualbox, ssh, shell, parallels:
docker

Please enter the default Docker image (eg. ruby:2.1):
ruby:2.1

Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

という感じで、難しいところはなにもありません。タグとかの使い方がまだよく分かってませんが、使いこなすと便利なのかもしれません。これが終わると、WEB上のページを更新すると以下のような感じでRunnersが表示されていると思います。

gitlab3.png

あとはテストやらデプロイなんかの処理をうまく連携すればいいのだと思いますが、そのへんはまだ自分も手探りの最中です。とりあえずリポジトリの一番上の階層に.gitlab-ci.ymlという以下の内容のようなファイルを置くと、コミットした際に同階層に置いたdeploy.shが実行されることは確認しました。テストもほぼ同じような方法で実行できるかと思います。

.gitlab-ci.yml
deploy:
  script:
  - chmod 700 ./deploy.sh
  - ./deploy.sh
  type: deploy
  tags:
  except:
  - tags

また、CI_BUILD_REF_NAMEという環境変数にコミットしたブランチ名が入ってきてるので、「developブランチにコミットした場合はdevサーバへ処理を行い、masterブランチにコミットした場合はstgサーバへ処理を行う」みたいな簡単な分岐を含む自動処理もできます。

参考
GiLab CI | GiLab CI のビルドスクリプト内で使用可能な環境変数について
http://qiita.com/tbpgr/items/7017a0ed5def79cd12e0

WEBインターフェースにもBuildsという項目が追加され、ビルドの結果が表示されるようになってます。

gitlab4.png

GitLabバージョン7以前はCI部分のUIがほぼ完全に別れていて使いにくかったのですが、統合されてすごく使いやすくなっています。そしてDockerを使ってのインストールは以前よりすごく楽になっているのでおすすめです。

Jenkinsを使うほど大げさなプロジェクトじゃない…、みたいなちょっとしたプロジェクトには使っても良さそうな気がします。自分でももう少し使ってみたいと思います。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6