第13章 継続的インテグレーション 継続的インテグレーション
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
継続的インテグレーションの原則は、テストにも適用される。テストもまた、開発プロセスにおける継続的な活動であるべきだ。
グレイディ・ブーチ他『オブジェクト指向分析と設計と応用』(アディソン・ウェスリー、2007年)
継続的インテグレーションによって、あなたのソフトウェアは、(十分に包括的な自動テストセットを前提として)新しい変更のたびに動作することが証明される。
Jez Humble and David Farley,Continuous Delivery(Addison-Wesley, 2010).
ソフトウェア・エントロピーとは、熱力学におけるエントロピーと同様、あるシステムにおける無秩序の度合いが時間とともに増加する傾向にあるという原則である。 熱力学の第二法則がそれを禁じている。ソフトウェアのエントロピーを食い止める方法はあるのだろうか?
コード・カオスの破滅的影響に対する現在の最善の防御策は、継続的デリバリ(CD)である。この言葉はアジャイルマニフェストの最初の原則に由来しており、「価値あるソフトウェアの早期かつ継続的デリバリ」による顧客満足を最優先事項としている。
アジャイルマニフェストより10年ほど前に作られた関連用語に、継続的インテグレーション(CI)がある。複数の開発者がいるチームでは、コードの確実な統合はさらに不可欠であり、したがって頻繁に行われるべきである。1
継続的インテグレーションが存在するためには、自動テストがなければならない。 そうでなければ、新しい変更が既存のコードと「継続的インテグレーション」されたことをどうやって知ることができるだろうか?この点は、繰り返し強調すべき重要な点である。
重要
自動テストなくして継続的インテグレーションはありえない。
これまで書いてきた単体テストからさらに価値を引き出すために、継続的インテグレーション・ビルド・プロセスの一部として実行することができる。これには、さまざまなツールを使うことができる。この最終章では、GitHub Actions を使って継続的インテグレーションサーバーをセットアップする。
コア概念
継続的インテグレーションは、継続的デプロイへと進化し、継続的デリバリで頂点に達する、ソフトウェア成熟度( )連続体における最初のフェーズである。 したがって、CIは継続的デリバリへの最初の進化ステップである。
図13-1に継続的インテグレーション、デプロイ、デリバリ(CI/CD)の一般化の概要を示す。
図13-1. 継続的インテグレーションと継続的デプロイは、継続的デリバリの進化的前駆体である。
バージョン管理
継続的インテグレーションでは、ソフトウェアのビルドに必要なすべてのコードをバージョン管理システムに保存する必要がある。
バージョン管理システムは、少なくとも以下の機能を提供しなければならない:
-
ファイルやフォルダの現在(最新)のリビジョンを、任意の構造と深さで保存する。
-
これらのファイルやフォルダを、単にバラバラの要素としてではなく、統一された「リポジトリ」の下に保管する。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access