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/):
GitLab - Speed with control for agentic software engineering
Teams and agents ship trusted software faster with GitLab, the intelligent orchestration platform with context and governance for the entire software lifecycle.

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-job1 と execute-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 上の表示は直りました。

コメント

タイトルとURLをコピーしました