CircleCIからGitHub Actionsへ移行する
レビュー投稿日の情報になります
株式会社グロービス / Naoki Harada
メンバー / バックエンドエンジニア
最終更新日投稿日
| ツールの利用規模 | 事業形態 |
|---|---|
| 11名〜50名 | B to B B to C |
| ツールの利用規模 | 11名〜50名 |
|---|---|
| 事業形態 | B to B B to C |
導入の背景・解決したかった問題
導入背景
CircleCIからGitHub Actionsへの移行前の課題
- コストの説明責任(予算の見通しが立てづらい)
- CircleCIはクレジット+プラン+seat等の要素が絡み、月々の着地が読みづらく、組織として「なぜ今この金額か」を説明しづらい状態でした。
- その結果、コスト最適化の効果検証(どの施策でどれだけ下がったか)もしづらく、改善の意思決定が重くなっていました。
- AI/自動化に必要なデータ取得がUI依存になりやすい
- 実行結果・ログ・成果物をプログラムから取得して集計したり、AIに渡して分析する際に、外部CIのUI操作に依存しがちでした。
- 失敗の一次切り分けや改善提案を仕組み化しづらいのが課題でした。(CircleCIはCLIあるものの、GitHubネイティブならghコマンドで認証も一元化できました。)
どのような状態を目指していたか
- CI/CDツールをGitHub Actionsに一元化し、管理コストを削減
- コスト予測が容易な分単位課金への移行
- テスト分割・並列実行の仕組みを維持しつつ移行
比較検討したサービス
- CircleCI
選定理由
- GHA自体がghコマンドでアクセスでき、AIフレンドリー
- 時間×インスタンスタイプで明朗会計
- CircleCIで発生していたシート料金がない
導入の成果
改善したかった課題はどれくらい解決されたか
解決した
- コストの透明性
- 分単位課金により、月次のCI/CD費用が明確に把握できるようになった
- シート料金の削減
- GitHubリポジトリ利用に含まれるため、追加のシート料金が不要に
- 設定の一元管理
.github/workflows/内で完結し、別サービスの管理画面を確認する必要がなくなった
どのような成果が得られたか
- 運用負荷の軽減
- GitHub内で完結するため、ツール間の連携設定やアカウント管理が不要に
- トラブルシューティングの容易さ
- PRと同じ画面でCI結果を確認でき、コンテキストスイッチが減少
導入時の苦労・悩み
- テスト分割の仕組みの違い
- CircleCIでは
parallelism: 16と--split-by=timingsで自動的にテスト分割・実行時間管理ができたが、GitHub Actionsでは全て自前実装が必要 - split-testという外部ツールを導入
matrix strategyで並列数を全て列挙する必要あり
- CircleCIでは
- 過去のテスト実行時間データの管理
- CircleCIは自動で記録してくれるが、GitHub Actionsではdawidd6/action-download-artifactで別ワークフローからデータ取得する仕組みを構築
- ワークフローの重複実行問題
- masterへのマージ時に
pushイベントとmerge_groupイベントの両方でワークフローがトリガーされ、RSpecとカバレッジレポート作成が2回実行されていた。merge_groupイベントのみでアップロードするよう変更し、重複を解消した。
- masterへのマージ時に
導入に向けた社内への説明
上長・チームへの説明
今が明朗会計ではないかつシート料金がかかっているため、まずは1チームでトライアル移行をしたいという説明をしました。 特に反対されずに、進めました。
活用方法
よく使う機能
- matrix strategy: 16並列でのRSpec実行
- actions/upload-artifact / download-artifact: ジョブ間・ワークフロー間でのデータ共有
- dawidd6/action-download-artifact: 過去のワークフロー実行からのアーティファクト取得
ツールの良い点
- コスト計算の分かりやすさ: 分単位課金で使用量が明確
- 追加コストなし: GitHubリポジトリを使用していれば追加契約不要
- 設定の一元管理: リポジトリ内の.github/workflows/で完結
ツールの課題点
- テスト分割機能の自前実装が必要: CircleCIのような組み込み機能がなく、外部ツール(split-test)の導入が必要
- 過去データの自動管理機能がない: テスト実行時間の記録・管理を自前で構築する必要あり
今後の展望
ubuntu-24.04-arm-2coreを利用し、2コアマシンで2プロセス並列実行することでCPUを最大限活用し、ジョブ起動回数を半減(16→8)させることでセットアップ時間と課金時間の削減を目指します。
株式会社グロービス / Naoki Harada
メンバー / バックエンドエンジニア
よく見られているレビュー
株式会社グロービス / Naoki Harada
メンバー / バックエンドエンジニア
レビューしているツール
目次
- 導入の背景・解決したかった問題
- 活用方法

