CI/CDは良く聞くし、自動でテストとかしてリリースしてくれるやつでしょ?ってくらいの理解度ではある。
でも詳しく教えてよって言われたら分からないからまとめてみる
そもそもCIとCDってなんなのさ?
CI/CDのCIとCDはそれぞれ独立した意味合いを持っている。
・CIは継続的インテグレーション
・CDは継続的デリバリー
それぞれなんなのってのを見ていく
CI(継続的インテグレーション)
「インテグレーション」つまり、日本語にすると「結合・統合」
ソースコードの変更をメインブランチにマージする事。
目的は、エラーやバグを早期に発見することで、コードの品質を保つことができる。
CIの流れは
- メインブランチとマージする。
- コードをビルドしてコンパイルエラーやビルド時の問題が発生しないかを検知する
- 自動でテストを実行してテストが通るかどうかを確認する
この一連の流れがCI(継続的インテグレーション)の流れとなる。
簡単に言ってしまうと、新しいコードを元のコードとくっつけてちゃんと動くか自動で確認するって感じ。
毎回手動で確認する手間が省けて効率的に開発ができるようになる
CD(継続的デリバリー)
CI(継続的インテグレーション)でマージ~テストが自動化でき、リリースする準備ができたので、その後は実際にリリースするような流れになるが、その流れを自動化するのがCD(継続的デリバリー)
これによってリリース作業を大幅に短縮することができる