Gitlab CI/CDで使うRunnerの種類
Shared Runner, Group Runner, Specified Runnerがある
https://docs.gitlab.com/ee/ci/runners/runners_scope.html
筆者は最初Shared Runnerを使おうと思ったが途中でクレジットカードを登録してくれと求められ、課金する気はなかったので無料で使えそうなSpecified Runnerを使うことにした。
で、Specified Runnerを使うにはgitlab-runnerというツールをインストールしないといけなかった。
gitlab-runnerのインストール
公式でインストール手順が用意されているので、基本的にはこれに沿ってインストールする。
https://docs.gitlab.com/runner/install/osx.html
curlで取る方法とhomebrewで取る方法2パターン用意されているが、公式は前者を推してるっぽい。
GitLab does not maintain the Homebrew formula.
公式手順だけだとgitlab-runner
にPATHが通ってなかったので、↓を追加で実施した。
$ export PATH=$PATH:/usr/local/bin/gitlab-runner
runnerをGitlabのレポジトリに登録する
gitlab-runnerをインストールしたら、次は各自のレポジトリにrunnerを登録する必要がある。
これも公式の手順があるので、参考に進める。
https://docs.gitlab.com/runner/register/#macos
手順7のrunner executorは手順ではdocker
を推奨しているが、自分はshell
を選択した。
registerが完了すると、ブラウザのGitlabでRunnerが登録されていることを確認することができる。
トラブルシューティング
Gitlabブラウザにて!runner has never contacted this instanceの警告が出るとき
gitlab-runner verify
を実行すると解消される。
$ gitlab-runner verify
Runtime platform arch=arm64 os=darwin pid=56801 revision=32fc1585 version=15.2.1
WARNING: Running in user-mode.
WARNING: Use sudo for system-mode:
WARNING: $ sudo gitlab-runner...
Verifying runner... is alive runner=1ubm4htM
runnerを登録したのにCI/CDのpipelineが永遠にpendingになるとき
gitlab-runner run
しておかないとCIがpendingのままになってしまうもよう。