技術ブログ | 株式会社アイプランニング IPlanning corporation

アイプランニング社員が調査したこと、学んでいることが具体的にどんなものなのかを披露します。 Here is what the IPlanning corp employees surveyed and what they learned.

GitLab CI を導入しました

f:id:iplcojp:20180223203025p:plain

GitLab で CI(継続的インテグレーション) をできるようにしました。

経緯

弊社では数年前から開発の助けとなるよう GitLab CE を運用しています。

社内で GitHub 同様にプロジェクト管理ができ開発作業に貢献してきました。 一方で、アプリの検証や納品といった作業のほとんどは手作業で行っていました。

手作業というのはとても温かみのある行為ですが、 同時にヒューマンエラーが入り込む温床となります。

また、それらの時間が削減できれば、その時間を開発に割り当てることができます。

そこで、検証や納品といった作業を自動化すべく GitLab で実現できる CI(継続的インテグレーション)サービス「GitLab CI」を導入してみました。

注意

本記事で示す GitLab CI の導入方法は、 公式ドキュメント をなぞったものです。 公式ドキュメントが性に合っているという方は、そちらをご覧下さい。

また、内容は GitLab が利用できることを前提としています。

GitLab CI の導入

GitLab CI を導入には、 次の2つの手順を踏みました。

  1. .gitlab-ci.ymlリポジトリのルートディレクトリに追加
  2. GitLab runner(以降、「runner」と呼ぶ)を設定

1. .gitlab-ci.yml をリポジトリのルートディレクトリに追加

CI を実行するということは、CIでやってほしいことがあるはずです。

そのやってほしいことを記述するファイルが .gitlab-ci.ymlです。 これを作成してリポジトリのルートディレクトリに追加します。

今回対象としたリポジトリpython なので、次のような .gitlab-ci.yml を追加しました:

 pytest:
   script:
     - python setup.py test

これは次のコマンドを実行することを意味します。

> python setup.py test

.gitlab-ci.yml の書き方は以下が参考になります:

2. GitLab runner を設定

さて、.gitlab-ci.yml にやってほしいことを記述したら、いよいよ実行させてみましょう。

CI を実行するのは、 GitLab runner と呼ばれる CI 実行ファイルです。 この runner を CI の実行環境(マシン。開発機と同じでも良い)で動作させることが最終的な目標となります。

runner は CI実行時に Git を使いますので、CI実行環境には以下を配置します:

  • GitLab runner
  • Git
  • その他、CIに必要な依存ツールがあれば

runner のダウンロードはインストールページ(Install GitLab Runner - GitLab Documentation)から行います。 当然ですが、環境に合致するものをダウンロードしましょう。

runner は、実行時にとあるユーザーとして Git 、必要ならその他依存ツールを使います。 そのため、ダウンロードした runner は、例えば、C:\GitLab-Runner\gitlab-runner.exe というように、管理者権限やユーザー権限に制限されない場所に配置します。

配置したら、runner の初期設定をします。

管理者権限で コマンドプロンプト(黒い画面)を起動し、次のコマンドを実行します。

> gitlab-runner.exe register

コマンドを実行すると、runner の設定に関する以下の7項目を入力することになります:

No 項目 内容
1. the gitlab-ci coordinator URL GitLab-CI を実行するリポジトリのURLを入力します。
2. the gitlab-ci token GitLab-CI を実行するリポジトリトークンを入力します。
3. the gitlab-ci description runner の識別名を入力します。
4. the gitlab-ci tags runner のタグを指定します。
5. Whether to run untagged jobs: タグ指定がないCIを実行をするか。
6. Whether to lock Runner to current project 現在のプロジェクトのみで使用するか。
7. the executor 何で実行するか。
  1. リポジトリページの Settings > CI / CD > Runners settings に記載されている URL を入力します。
  2. URLと同じ場所にに記載されている トークン を入力します。
  3. あなたの runner の名前を決めます。既定値はPC名になっています。
  4. CIの実行条件となるタグを入力します。これは後からでも変更できます。
  5. false が推奨です。限られたリポジトリのみで動作させるならば、使い勝手の点から true にしても良いです。
  6. true が推奨です。複数のリポジトリに対して使用したい場合は、false にしてもよいです。
  7. 特に理由がなければ shell にしましょう。dockerなどの環境が使える場合はそれらも選択肢となるでしょう。

煩雑な準備は以上でおしまいです。 そのままコマンドプロンプトで以下を実行すると、runner が利用できるようになります。

> gitlab-runner install
> gitlab-runner start

最後に

今回は特定のリポジトリに対する導入方法を紹介しました。

GitLab CI を導入したことで、疲れていたり眠かったりするときも 作業ミスが減り開発作業が捗るようになりました。

CI って難しいイメージがまだまだありますが、 やってみるとそれに見合うだけの結果は得られますので、 ぜひ皆さんもやってみてください。

以上です!