コーヒー飲みながら仕事したい

仕事で使う技術的なことの備忘録とか

gitlab-ci と gitlab runner 連携の環境構築

とりいそぎ備忘録です。

gitlab-ci や gitlab runner が何なのかはここでは省略します。

動作環境

gitlab-ci 側

gitlab.com を使わせてもらいます。本当はローカル環境で構築したかったんですが、前回 Docker 上で動作させることができなかったので一旦断念しています。

gitlab runner 側

Windows 10 Home 64bit です。

前提

gitlab のアカウント登録および CI 実行するリポジトリはあらかじめ作っておきます。
今回は https://gitlab.com/tassi-yuzukko/gitlab_ci_test にテストリポジトリを用意しました。

今回の目標

とりあえず連携させて、 gitlab runner が動くところまでを目標とします。

gitlab ci と gitlab runner の関係

f:id:tassi-yuzukko:20180318005002p:plain

gitlab runner を Windows へ導入

DL と インストール

以下からDLします。

DLしたら、好きなところに配置します。インストール作業は不要で、exe オンリーみたいです。

今回はとりあえず C:\gitlab-runner においてみました。

参考

GitLab CIならWindowsでのCIも簡単

gitlab runner の設定

gitlab ci の確認

gitlab runner の設定に当たり、まず gitlab ci のリポジトリの設定を見に行きます。(つまり、gitlab のプロジェクトページを見に行きます)

「CIをするプロジェクトページ > Settings > CI/CD > Runners settings > Expand」を開く。 f:id:tassi-yuzukko:20180318005135j:plain

「Setup a specific Runner manually」に、 URL と token が書いてあります。 f:id:tassi-yuzukko:20180318005450j:plain

ここをとりあえず確認した状態で、 gitlab runner の設定に移ります。

gitlab runner の設定

先ほど exe を配置したフォルダで、コマンドプロンプトを管理者権限で起動し、以下の通り設定していきます。

> gitlab-ci-multi-runner-windows-amd64.exe register

gitlab-ci の URL登録

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab.com/

token の設定

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

runner の名前の設定
→gitlab-ci 上に表示される識別子的なものです。好きなものでOK

Please enter the gitlab-ci description for this runner:
[XXX-PC]: for the CI test

タグの指定
→今のところよくわかっていません。
とりあえず省略可能(何も入力せず Enter 可能)のようです。
カンマ区切りで複数指定が可能らしいです。

Please enter the gitlab-ci tags for this runner (comma separated):

runner を現在のプロジェクトにロックするかどうか?
→こちらもよくわかっていません。とりあえず true にしておきました。

Whether to lock Runner to current project [true/false]:
[false]: true
Registering runner... succeeded                   [0;m  runner[0;m=j6JrxFKU

Executor の設定
→とりあえず shell (=Windows でいうとコマンドプロンプト)で動作確認します。
後々は Docker とかにすると便利な気がします。

Please enter the executor: kubernetes, shell, docker+machine, parallels, ssh, virtualbox, docker-ssh+machine, docker, docker-ssh:
shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded![0;m

gitlab runner に実行権限を付与

パスワードを設定し、 gitlab-ci からの接続を可能にします。

> .\gitlab-ci-multi-runner-windows-amd64.exe install --password <PCのログオンパスワード>

gitlab runner のサービス開始

サービスを開始し、 gitlab-ci と接続します。

> .\gitlab-ci-multi-runner-windows-amd64.exe start

gitlab-ci 側の確認

ここまですると、gitlab-ci にgitlab runner が接続に言っているはずなので、 gitlab-ci 側を確認しときます。

「Setup a specific Runner manually」のところに、下図の通り「Runners activated for this project」で先ほど設定した description が表示されていれば接続成功です。

f:id:tassi-yuzukko:20180318010910j:plain

参考

gitlab-runner の環境構築をしてみた - Qiita

動作確認

.gitlab-ci.yml の用意

プロジェクトに .gitlab-ci.yml を作成し、コミット→プッシュすることで、 gitlab-ci が実行され、 gitlab runner のジョブが走るようです。

ですので、とりあえずテスト用プロジェクトに、テスト用の yaml ファイルを以下のように作りました。

# .gitlab-ci.yml
job1:
  script: "echo execute-script-for-job1"

job2:
  script: "echo execute-script-for-job2"

これは、単純に2つのコマンドプロンプトexecute-script-for-job1execute-script-for-job2 がそれぞれ表示されるというジョブです。

これをコミット→プッシュします。

gitlab-ci の確認

gitlab のプロジェクトを見に行き、「CI/CD → Pipelines」でジョブが走っていることを確認します。
成功していれば、 passed と表示されます。

f:id:tassi-yuzukko:20180318011713j:plain

備考

コマンドプロントの文字コード設定

直接は関係ないですが、最初は gitlab 上での表示が文字化けしていました。

f:id:tassi-yuzukko:20180318012324j:plain

下記サイトにあるように、コマンドプロンプト文字コードを変更する必要があります。

qiita.com

今回はレジストリの変更を採用してやってみると、gitlab 上の表示は直りました。