「継続的インテグレーションとは何ですか?」
この質問についてWiki が何を教えているか見てみましょう: 継続的インテグレーション (CI、英語の継続的インテグレーション) は、作業コピーを共通のメイン開発ブランチに 1 日に数回マージし、初期段階でプロジェクトの自動ビルドを頻繁に実行することで構成されるソフトウェア開発手法です。潜在的な欠陥を検出し、統合上の問題を解決します。 怖いですね。この用語を簡単な言葉で説明してみましょう。 継続的インテグレーションは、バグや非互換性を検出するために、特定のマシン上で特定の構成を使用してソフトウェアを構築および自動テストするためのシステムです。 さて、問題ありません。それはわかりましたが、次のような論理的な疑問が生じます。なぜ CI が必要なのでしょうか?
大規模なプロジェクトを作成していて、機能を追加/変更する必要があると想像してみましょう。正常に作成し、テストを作成し、起動すると、すべてがうまくいったように見えますが、そうではありません。ある機能の変更が別の機能に影響し、さらに別の機能が影響を受け、さらに別の機能が影響を受けて、バグがどこかに滑り込んでエラーが発生するという状況が発生します。はい、これは設計が不十分なプロジェクトである可能性が高いと言えますし、それは正しいかもしれません。しかし、そうではなく、これらの接続が実際に存在する必要がある場合はどうなるでしょうか? そして、よくあることですが、プロジェクトの執筆と作成を複数回行う場合はどうなるでしょうか? 新しく作成した機能に対してテストを実行したところ、肯定的な結果が得られました。簡単にコミットしてどこかにプッシュし、自宅で高価なウィスキーを飲みながら葉巻を吸う方法をすでに考えていますが、そうではありません。悲しいことに、あなたの同僚や上司が、誰であろうと、あなたのコミットのせいでビルド全体がクラッシュしたと言います。あなたは当惑しながら、自分はプログラマーであり、すべてをテストしてきたと言いました。しかし、多くの場合、プロジェクト全体を常にテストする時間がなく、アセンブリ全体ではなく、変更を加えたコード部分のみをテストしていました。ここで CI が役に立ちます。リソースにプッシュするたびに、CI はプロジェクトを最初からビルドし、すべてのテストを実行します。すべてのテストに合格してプロジェクトがビルドされた場合にのみ、ビルドは合格ステータスを受け取ります。そうしないと、復帰して何が問題だったのかを確認する機会が得られます。そこで、 「なぜそうなるのに、そうでないのはなぜですか?」という質問をする時が来ました。そしてソフトウェアの実装を見てみましょう。 例 すでに述べたように、この記事は Maven と Git に精通している人を対象としています。したがって、CI の設定など以外に私がどのようにして何をしているのかを知っていただければ幸いです。-
まず、単純な Maven テスト プロジェクトを作成し、その中に「Hello World!」を出力するクラスを作成しましょう。そして、いくつかの簡単な操作を実行します。そして、このクラスの最も簡単なテストを書いてみましょう。
結果として、次のような基本的なプロジェクト構造が得られます。
すべてのソースは私の GitHub にあります。Main に何を書くか、どのようなテストがあるかは関係ありません。
-
プロジェクトを GitHub にプッシュします。
-
ここからが楽しい部分です。CI の中では、可用性と信頼性を考慮してTravis CIを選択しました。Travis は GitHub を使用してソース コードをホストしています。
したがって、Travis CI Web サイトにアクセスし、GitHub 経由でログインします。プロファイルでは、プロジェクトを接続します。
押すたびにすべてを組み立てる準備ができていますが、問題はどのように組み立てるかです。
-
大好きなIDEAに戻り、.travis.ymlファイルを作成します。
このファイルは Travis ビルド構成を担当します。最も一般的な設定を見てみましょう。
一般的な Travis 構成は次のようになります。
# https://docs.travis-ci.com/user/languages/java/ language: java jdk: oraclejdk9 # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects cache: directories: - $HOME/.m2 # Notifications https://docs.travis-ci.com/user/notifications/ notifications: email: recipients: - qThegamEp@gmail.com on_success: always # default: change on_failure: always # default: always
わかりやすくするために、リンク付きのコメントを追加しました。
-
再度 GitHub にプッシュし、Travis Web サイトを開き、プロジェクトを選択してビルドを監視します。その結果、ビルドの成功に関する通知を受け取ります。
また、このサイトでは、プロジェクトのアセンブリが成功したことを示すバッジが表示されます。これを README.md に挿入できます。
-
何か理解できない場合に表示/ダウンロードできる私のテスト プロジェクト。
-
実際にはTravis CI Web サイト自体です。
-
Travis CI のセットアップと使用に関する公式 Web サイトのチュートリアル。
-
良いビデオです。
- 別のチュートリアル;
GO TO FULL VERSION