Help us understand the problem. What is going on with this article?

GitLabCIを導入するときにハマった事・疑問に思った事などのメモ

以下は全て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"

参考になるもの

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away