TeamCity にはビルドを強化する多数の機能がバンドルされています。 このチュートリアルでは、特定のランナーの使用方法とそれを使用する理由について説明します。
ビルドランナーは特定のビルドツール(Ant、MSBuild、コマンドラインなど)との統合を実現する TeamCity の機能です。 ビルドランナーには実行するビルドタスク、使用するビルドツールのバージョン、コンテナーとして使用する Docker/Linux イメージなどを指定できる設定が備わっています。 ビルドランナーによるビルドの実行とその結果の報告方法はビルド構成で定義します。 TeamCity には .NET、Maven、Gradle、Docker、Python、Node.js などの多数のビルドランナーが初期状態で備わっています。
ビルド構成を開き、編集しましょう。 ここには 1 つのビルドステップがあり、コマンドラインでビルドステップが記述されています。 このスクリプトは以下のコマンドを処理します。
cd
。mvn clean package
の実行。.jar
ファイルのアップロード。 ここでは mvn clean package
ステップを削除し、代わりに TeamCity の特定の Maven 機能を使用することにします。 カスタムスクリプトで対象の行を削除し、Save(保存)をクリックするだけです。
その後、新しいビルドステップを追加します。 TeamCity は特定のランナーを選択するように提案します。
TeamCity が統合する各テクノロジーには対応する特定のランナーがあります。 たとえば .NET プロジェクトをビルドする場合は、.NET ランナーを選択します。 コマンドラインスクリプトを実行する場合は、コマンドラインランナーを使用します。 同様に、Docker 固有のステップには Docker ランナー、Gradle プロジェクトには Gradle ランナーを使用します。
TeamCity のビルドランナーの完全なリストはドキュメントで確認できます。
ここでは Maven プロジェクトを操作しているため、ドロップダウンリストから Maven を選択しましょう。 次に、このステップで TeamCity が提案するいくつかのフィールドに入力します。
pom.xml
ファイルは calculator service ディレクトリにあるため、ツリーアイコンをクリックして目的のフォルダーを選択します。 すべてのディレクトリがツリー状のビューで表示されるため、ディレクトリ名を入力する必要はありません(スペルミスなどの可能性がありません)。 リストからディレクトリを選択するだけです。
Docker Hub の Docker イメージ名(例: maven:latest
)を指定すると、Docker コンテナー内で mvn clean package
ステップを実行できます。 TeamCity がこのイメージを取得し、そこから透過的に Docker コンテナーを起動して mvn clean package
をその中で実行し、その後コンテナーを破棄します。
手動ビルドステップの構成を続けるには、このリンクをクリックします。
TeamCity では特定のカバレッジランナーを選択できます。 たとえば、すべてのランナーを pom.xml
ファイル内に選択的にハードコードする代わりに、IntelliJ IDEA または JaCoCo コードカバレッジランナーを追加できます。
com.jetbrains.teamcity.*
をパッケージのパターン名として追加しましょう。 TeamCity はコードカバレッジのためにこのパターンに一致する名前を持つパッケージを解析します。
TeamCity では高度なオプションを構成することも可能です。 たとえば、複数の異なる Maven プロジェクトバージョンを選択することも、特定の Java バージョンを選択してプロジェクト全体を実行することもできます。
これらすべての UI オプションを使えば、コマンドラインの呼び出しが機能するかどうかを気にする必要はありません。 それは TeamCity がユーザーに代わって行います。
この時点ではコマンドラインスクリプトが実行された後に Maven ステップが実行されますが、 mvn clean package
を先実行してから S3 へのコマンドラインアップロードを行うようにビルドステップの順番を変更します。
その後で Run(実行)をクリックすれば、すべてが期待どおりに動作するでしょう。
ビルドの実行が完了すると、ビルド概要ページにアクセスできます。 このページには Maven Build Info(Maven ビルド情報)や Code Coverage(コードカバレッジ)などの新しいタブのほか、Tests(テスト)結果や Code Coverage(コードカバレッジ)結果用の新しいセクションがあります。
Maven ビルド情報
Maven ビルド情報ページでは、どの特定の Maven バージョンを使ってどの目標を実行したのかについての概要が得られます。 Maven が生成した .jar
ファイルなど、生成されたアーティファクトも確認できます。
このレポートには、この特定のビルドのために Maven がプルしたすべての具体的な依存関係がそのバージョンと共に表示されます。 これにより、ビルドを構成するライブラリの概要を把握できます。 デバッグ目的にも役立ちます。
そのビルド中にアクティブになったすべての有効な Maven プラグインも表示されます。
テスト概要ページ
Maven ランナーを使用して無料で取得できるテストの概要ページには、多くの有益な情報が表示されます。 このレポートでは以下の情報を確認できます。
各テストにはテストに関するすべての基本情報を含むテスト履歴もあります。 テスト履歴は「なぜこのテストの実行に突然時間がかかるようになったのか?」 「不安定なテストか?」など、テストで発生する可能性のある問題を調査する必要がある場合に役立ちます。
テストレポートについては、こちらの動画で詳しく説明しています。
コードカバレッジレポート
コードカバレッジレポートでは、使用されたクラスやメソッド、テストでカバーされたコードの割合などの情報を得られます。
IntelliJ IDEA コードカバレッジランナーのドロップダウンオプションをいくつか選択すれば、TeamCity UI でこれらのレポートを得ることができます。
今日のところは以上です! テストレポートやコードカバレッジレポートなどの TeamCity 固有の機能の使用方法については、他のチュートリアルをご覧ください。
Happy building!