以下は全てrunnerをmacOSのマシンにしてる。
導入・起動法
GitLab側の設定はこちらの記事がわかりやすかった。
(androidのプロジェクトの話になっているけど、.gitlab-ci.ymlのテンプレート作成部分以外はどの言語のプロジェクトでも参考になると思う。)
https://qiita.com/tetsukay/items/91a03b38af8c7eec9551
Runnerの生成は公式ドキュメントに従う。
https://docs.gitlab.com/runner/register/index.html
runnerの設定をrunnerしてるマシンから見るには
cat ~/.gitlab-runner/config.toml
で見れる。
ひとつのマシンで複数回 gitlab-runner register を呼んでしまったけどそれぞれの設定はどこで見るの?
- 上記の~/.gitlab-runner/config.tomlの中の[[runners]]]の項目がgitlab-runner registerで作ったrunnerと1対1対応になっている。
- また、GitLab上ではSettings > CI/CD > Runnersで見れる。
- ちなみにconfig.tomlの[[runners]]]を削除したり、nameを変更したりしてもGitLabのSettingsから見える方は特に変更が反映されることはないっぽい。
gitlab-runnerが動いているか見たい
runnerrunnerにしてるマシンのターミナルから
gitlab-runner status
で確認できる。
Runnerはちゃんと動いてるはずなのになぜか全然実行されない!
プロジェクトに追加した.gitlab-ci.ymlファイルの中でジョブにtagsパラメーターを設定しているかチェックしよう。
-
設定していない場合 → Settings > CI/CD > Runnersで各Runnerの設定の編集ボタンを押し、「Run untagged jobs」にチェックを入れる
-
これにチェックが入っていると、プロジェクトに追加した.gitlab-ci.ymlファイルの中でtagsパラメーターを設定していないジョブを実行できるようになる。
-
私はこれに気が付かなくて5時間以上溶かしました。
-
設定している場合 → .gitlab-ci.ymlファイルの中でジョブに設定したtagsパラメーターの値と、Runnerのtagの値が一致しているかチェック
-
一致していなかったらRunnerのタグの設定か.gitlab-ci.ymlファイルのどちらかを修正して一致させる。
-
Runnerのタグの設定はSettings > CI/CD > Runnersで各Runnerの設定の編集ボタン から編集できる。
tagとは
GitLabCIを使うためにプロジェクトに追加する.gitlab-ci.ymlファイルの中で各ジョブにtagsフィールドを足すことでタグをつけることができる。Runnerでは、自身の持つtagと同じタグを持つジョブだけ実行出来る。複数RunnerをRunnerを登録しているときにジョブごとに実行Runnerを振り分けたりするためにある?
テストビルド時にrunnerがサブモジュールを見れていない?
.gitlab-ci.ymlのビルドステージのジョブ、.gitlab-ci.ymlのトップに以下の変数を設定する
variables:
GIT_SUBMODULE_STRATEGY: "recursive"
参考になるもの
- GitLab側の初期設定
https://qiita.com/tetsukay/items/91a03b38af8c7eec9551 - Runnerの生成(公式)
https://docs.gitlab.com/runner/register/index.html - 一番簡単なconfig.toml ファイルの制作例が載っている。読むと何となくconfig.toml ファイルの作法や思想がわかる。
https://kore1server.com/351/GitLab+CI%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%EF%BC%88%E7%BF%BB%E8%A8%B3%EF%BC%89 - config.toml ファイルの各細かいパラメーターの設定について(公式)
https://docs.gitlab.com/runner/configuration/advanced-configuration.html - config.toml ファイルの各細かいパラメーターの設定について(公式)
https://docs.gitlab.com/ee/ci/yaml/#artifactsreports - tagsを正しく設定しなきゃダメだよ、というQA(公式)
https://forum.gitlab.com/t/activated-specific-runner-is-not-working/7002 - その他参考にしたもの
- 社外からは別URLでクローンしなきゃいけない時の対処
https://qiita.com/makies/items/5d5b5bab3de59b2f805c - runnerがサブモジュールを見れていない時の対処法
https://qiita.com/knjname/items/c69711dbe8ee17505298