JA
Rails 8.1で追加されたLocal CIは、CIの大幅な速度向上とコスト削減を両立する大きな可能性を秘めています。しかし、
- 全てのCIをローカルで実行するのは不安
- Dependabotなど、自動で起票されたPRの作業が不便になりそう
などの懸念から導入を見送っていませんか?
弊社では、Local CIとGitHub Actionsを併用することでこれらの懸念を解消し、それぞれの強みを活かして開発をしています。具体的には、mainブランチへのマージ時やDependabotのPRでは引き続きGitHub Actionsを利用しつつ、平常時はLocal CIを活用し、約140のモデルを持つRailsアプリケーションのCI実行時間を10分から2分程度に短縮しました。またGitHub Actionsのコストも約45%削減しました。
本トークでは、まずLocal CIとそれを支えるGitHub CLI 拡張機能のgh-signoffを紹介し、Local CIの結果をGitHub上に安全に反映する仕組みについてお話しします。その後、Rails 8.2で導入予定のgroupを活用した高速化のコツ、CIの併用に必要なBranch protection rulesやWorkflowsの設定、両者の実行コマンドをDRYに保つ方法など、半年間の実運用で得たTipsを余すことなくお伝えします。