業務じゃ運用っぽいことやってるくせにCI(継続的インテグレーション)まわりを全然カバーできてないのはそろそろ恥ずかしいので、 自宅サーバで色々動かして勉強してみようという試み。
(以前に軽くJenkinsはさわったことあるけど、スペックとかの問題でまともには運用できてなかったんだよな・・・)
今回導入してみたのはGitLab CI。
会社でも自宅でもプライベートリポジトリとして利用しているGitLabなのだが、 都合が良いことに8系からはCI機能が統合されたらしい。
GitLabのCI機能を使うためにはあとはRunnerというビルド等を行う側を用意さえすればよいのだが、 こちらも幸いなことに本体同様にDockerイメージがある。
そんなわけで、先日のGitLab本体に加えてGitLab CIもDockerで動かしてみることにした。
準備
Dockerイメージの取得
本体側でもお世話になってるsameersbn氏のイメージを使う。
普通にdocker pullで拾ってきておく。
docker pull sameersbn/gitlab-ci-multi-runner:1.0.0-1
似たような名前のdocker-gitlab-ciというイメージもあるが、 こちらは統合前までのものなので注意。
Tokenの確認
RunnerとGitLabとを接続するために、 GitLabの管理者メニューのRunnerのページのTokenを確認する。
URLでいうとhttp://[ドメイン]/admin/runnersにある。
Runnerの起動・接続
docker-composeを記述
やっぱり一々オプションを手書きするのは面倒なのでDocker Composeを記述する。
Githubの記述を参考にしつつ、自分の環境にあわせてドメインやらTokenやらを記載する。
# Ci Runner GitlabCIMultiRunner: image: sameersbn/gitlab-ci-multi-runner:1.0.0-1 volumes: - /srv/docker/gitlab-runner:/home/gitlab_ci_multi_runner/data - /etc/localtime:/etc/localtime:ro environment: - CI_SERVER_URL=http://[GitLabが動いているドメイン]/ci - RUNNER_TOKEN=[さっきのToken] - RUNNER_DESCRIPTION=[Runnerの名称] - RUNNER_EXECUTOR=shell restart: always
単体で動かしても良いのだが、どうせ同じサーバ上で動かすということで、今回はGitLab本体のdocker-compose.ymlに追記する形で記述。
kill&up -dで立ち上げ直しておく。
追加の確認
正常に接続されれば、先ほどと同じRunnersページに表示が追加される。
プロジェクトの設定
対象とするプロジェクトの追加
さっき追加したRunnerのページのEditボタンから設定ページに入る。
左下に対象とするプロジェクトを選択する箇所があるので、Enableボタンを押して追加していく。
URLではhttp://[ドメイン]/admin/runners/[RunnerのID]
プロジェクトで使用するRunnerの追加
最後に個別のプロジェクト側のページに移り、設定を行っていく。
プロジェクトのトップから設定ページに入る。
Runnerページを開き、Disable Shared Runnerボタンを押してEnable Shared Runnerに切り替えておく。
(この設定もしかすると先にRunnerの方がSpecificになってるからいらないかもしれないんだけど、 RunnerがどこでSharedとSpecificが変更できるのかよくわからないんだよな・・・特に設定変えてないはずなんだけど変わっちゃっててちょっと困惑)
URL的にはhttp://[ドメイン]/[オーナー]/[プロジェクト]/runners
トリガーの設定
同じくプロジェクトの設定ページからTriggersページを開く。
そしてAdd Triggerで新たにトークンを発行する。
追加すると.gitlab-ci.ymlなんかの記載例が出てくる。
URLではhttp://[ドメイン]/[オーナー]/[プロジェクト]/triggers
あとは先程の.gitlab-cli.ymlをプロジェクトのディレクトリに追加すれば、 CI機能が動作することを確認できる。
ここより先の部分についてはまだ学習中ということで、今回はここまで。
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 24人 クリック: 567回
- この商品を含むブログ (53件) を見る
- 作者: ポール・M・デュバル,スティーブ・M・マティアス,アンドリュー・グローバー,大塚庸史,丸山大輔,岡本裕二,亀村圭助
- 出版社/メーカー: 日経BP社
- 発売日: 2009/08/06
- メディア: 単行本
- 購入: 18人 クリック: 388回
- この商品を含むブログ (37件) を見る