🐿️

CI / CD 入門 2021

2021/04/05に公開

はじめに

CI/CDについてなんとなくの理解しかなかったので、調べてまとめてみることにしました。

CI/CD とは

CIとは、Continuous Integration の略で、日本語では「継続的インテグレーション」と呼ばれます。
CDとは Continuous Delivery もしくは Continuous Deplpoyment の略で、日本語では「継続的デリバリー」「継続的デプロイメント」と呼ばれます。

CI/CD が正常に機能すると、アプリケーションへの新しいコード変更が定期的にビルド、テストされ、共通リポジトリに統合されます。コードが変更されるたびに自動でテストが行われるので、テストの実行忘れを防ぐことができます。

CI(継続的インテグレーション)

継続的インテグレーションでは、コミットする度に自動ビルドと自動テストが実行されます。これは、統合ブランチにマージされる前に行われるので、マージするときに発生する可能性のあるコンフリクトを回避できます。

CD(継続的デリバリー)

継続的デリバリーは、継続的インテグレーションの拡張で、ビルドやテストの実行後に自動的にステージング環境にデプロイされます。運用環境へのデプロイは手動で行う必要があります。

CD(継続的デプロイメント)

継続的デプロイメントは、継続的デリバリーの拡張で、本番環境へのデプロイまで自動で行われます。したがって、マージしてしばらくすると、ローカルに開発された機能を本番環境で確認することができます。

CI と CD の違い

CIとCDは、それぞれカバーする範囲が異なります。CIは、コードレベルのテストまでを自動化するのに対し、CDはリリースやデプロイまでを自動化します。

  • CIが走るタイミング
    • 作業ブランチでpushした時
    • Pull Requestを作成した時
    • Pull Request作成後にpushした時
    • cron時
      • 時刻を設定し、定期的に処理を実行させる
  • CDが走るタイミング
    • Mergeした時
    • cron時
      • 時刻を設定し、定期的に処理を実行させる

CI/CDツール

CI/CDツールには、以下のものがあります。

CI/CDの導入方法

導入方法に関しては、別の記事で書こうと思います

参考

Discussion