CI/CD導入のメリット
CI/CDはそれぞれContinuous Integration(継続的インテグレーション)、Continuous Deployment(継続的デプロイ)の略で、ビルド/テスト/デプロイなどWebアプリケーションをリリースするまでの数々の処理を自動化する考え方、手法のことです。CI/CDを導入することにより、以下のようなメリットがあります。
テストし忘れの防止
手動でテストを行う場合、開発者はコードに変更を加えるたびにテストコマンドを実行する必要があります。そうすると、ときには実行し忘れが発生します。このような状態が積み重なると、きちんとテストされずにリリースされることになり、品質の低下につながります。CIを使えば決められたテストが常に実行されるので、このような心配はありません。
テストに対する信頼性の向上
手動の場合は、テストコマンドの実行手順を間違えてしまうことも考えられます。そうすると、さっきは成功していたテストが失敗してしまうなど結果が変わってしまうことがあります。このようなことが積み重なると、テストそのものを信じることができなくなります。CIを導入すればこのようなミスは起こらないので、テストへの信頼性が高まります。
積極的な機能リリース
CIによりテストに対する信頼性が上がり、CDにより自動でデプロイがされるようになれば、開発者は積極的に新しい機能をリリースできるようになります。その理由の1つ目は、テストにパスしているコードしかリリースされないからです。2つ目は、万が一バグのある変更をリリースしても、CDのおかげでロールバックや修正の適用が簡単にできるからです。これらにより、開発者は安心して新しい機能を追加できるのです。
品質と開発速度の向上
これらのメリットが積み重なることで、最終的に品質と開発速度を向上できます。
CircleCIを導入したときの開発のイメージ
CircleCIは、CI/CDの分野をリードするサービスで、Webアプリケーションを開発する多くの企業が利用しています。CircleCIを導入した際の開発フローのイメージを、テストに絞って紹介します。
CircleCIは、GitHubをはじめとするコードホスティングサービスと連携できます。コードをGitHubにプッシュすると、テストが成功した場合は図1のようにGitHubのプルリクエスト上に表示されます。テストが失敗した場合は図2のように表示されます。
図1 プルリクエストでCIが成功した場合
図2 プルリクエストでCIが成功した場合
図の「Details」と書かれているリンクからテスト結果を確認できるので、エラー原因を特定してコードを修正したコミットをプッシュします。無事に修正されていればプルリクエストのページのCIステータスが図1のようにグリーンへと戻ります。
『CircleCI実践入門』は、CircleCIを使ってCI/CDを自動化する方法を解説した書籍です。基本から始め、実際の開発に応用できるよう設定例やTipsをふんだんに掲載しています。Appendixとして、設定を行うための設定キーの意味や使い方を解説するリファレンスも付属しています。ぜひ本書を参考にCircleCIを使いこなし、開発の効率化、ソフトウェアの品質向上に役立ててください。