昨日に引き続き、今日はシス管な日でした。
GitLab でCIを回そうとするとそのCIを実行する環境を用意しないといけなくて、その環境を用意してました。 環境自体にも色々種類があって、俗に言うExecutorsなんですが、今回は docker の環境構築をしてました。 ちなみに shell の環境はもう持っていて、一週間くらい前にcontainerで建てました。
container in container (docker in podman) で建てるか container in VM で建てるかの選択肢がありましたが、container in container で建てるのは少し難しそうだったので今回は container in VM でいきました。 結局VMを駆逐することができないしスケールも行いにくいのでうーん、という気持ちになりましたがもうやってしまったものは仕方ない...
で、構築自体ですが gitlab-runner を apt でインストールしてコマンド叩けば終わりです。
ちょっと詰まったところといえば、gitlab-runner のデーモンが上手く起動してなくて、原因が/var/gitlab/gitlab-runner
が存在しないみたいな感じでした。
その後は GitLabのCIの書き方に苦労しつつ、Golang のtest, fmt, build をサンプルで書いてみました。
publicにしてあるので誰でも見れます。ぜひ見ていってください。リンク先
実は来週あたりに k8s を導入していく予定なのでdocker環境ではなくk8sを使う方にシフトしていくと思いますが、scheduleを組んだ通知系のCIはdocker環境で... などと使い分けはできそうです。