この記事は2019新卒 エンジニア Advent Calendar 2019の16日目の記事です。
携帯で執筆したため後ほど推敲します.おそらく...
モノレポとは
複数のサービスのコードを一つのリポジトリで管理する手法
[ここに参考文献を貼ります]
*bazel buck pants 等
モノレポの利点
- devOpsサイクルの効率化...CIの段階でライブラリ間の齟齬を検出できます.
[ここに図を載せます] - CIの共有...同じCIパイプラインを共有できます(もちろんジョブは並列に実行されます)
- ひとつのサービスの開発にいくつもプルリクを出す必要がない
欠点
- semantic versioningが意味をなさない.(正確には単一バージョン管理ができるというメリットなのですが,様々な理由により...[後ほど])
モノレポのCIジョブ
- pantsbuildには差分検出機能があるので[リンク]これを活用
- あとは普通にpantsのテスト等のコマンドをJenkinsなりcircleCIで実行するだけ.
- 新しいテストを追加する場合もパイプラインを共有しているのでそれを書き換えるだけで良い.
モノレポのCD
- 後ほど