TeamCity による継続的インテグレーション
TeamCity は、継続的インテグレーション / 継続的デリバリー (CI/CD) サーバーです。
継続的インテグレーションは、開発者がコードの変更を共有リポジトリに 1 日に数回コミットするソフトウェア開発プラクティスです。 各コミットの後に自動ビルドが行われ、新しい変更が既存のコードベースにうまく統合され、問題を早期に検出できるようになります。
継続的インテグレーションの基本については、 当社の Web サイトを参照してください。
TeamCity とは?
JetBrains TeamCity は、開発者およびビルドエンジニア向けのユーザーフレンドリーな継続的インテグレーション (CI) サーバーで、 Professional Server License で無料で利用でき 、設定も簡単です!
このビデオでは、TeamCity の主な機能の概要を紹介し、 ライセンスポリシーについて説明します:
TeamCity で何ができますか?
異なるプラットフォームや環境で同時に並列ビルドを実行する
コード統合サイクルを最適化して、壊れたコードがリポジトリに入らないようにします。
インテリジェントなテストの並べ替えによるオンザフライのテスト結果レポートの確認
コードカバレッジを実行し、Java と .NET のファインダーを複製
ビルドの期間、成功率、コード品質、カスタムメトリクスに関する統計をカスタマイズします
およびはるかに
TeamCity の主な機能の詳細については、 JetBrains 公式 Web サイトを参照してください。
TeamCity は、管理者やビルドエンジニアだけでなく、開発者にも適しています。 このビデオを見て、その特徴的な機能のいくつかを学びましょう。
サポートされているプラットフォームと環境の完全なリストは、 こちらから入手できます。
TeamCity の基本概念
このセクションでは、TeamCity の主な概念について説明します。
TeamCity ビルドシステム は、 サーバー と ビルドエージェント で構成されます。
コンセプト | 説明 |
|---|---|
ビルドエージェント | ビルドプロセスを実際に実行するソフトウェアです。 TeamCity サーバーとは別にインストールおよび構成されます。 エージェントは別のマシン (物理または仮想のマシンにインストールでき、サーバーと同じオペレーティングシステム (OS) または別の OS で実行できます。 |
TeamCity サーバー | サーバー 自体は ビルドもテストも実行しません: 、サーバーのジョブは、接続されているすべてのビルドエージェントを監視し、互換性要件に基づいて キュー内のビルド をエージェントに配布し、結果をレポートすることです。 ビルド結果に関するすべての情報 (ビルド履歴と、アーティファクトとビルドログを除くすべてのビルド関連データ)、VCS の変更、エージェント、ビルドキュー、ユーザーアカウント、ユーザー権限などは、データベースに保存されます。 |
プロジェクト | TeamCity プロジェクトは、ソフトウェアプロジェクトまたはソフトウェアプロジェクトの特定のバージョン / リリースに対応します。 プロジェクトは、 ビルド構成のコレクションです。 |
ビルド構成 | ビルド手順を定義する設定の組み合わせ。 設定には、以下で説明する VCS ルート、 ビルドステップ 、および ビルドトリガーが含まれます。 |
VCS ルート | TeamCity がバージョン管理システム (VCS) と通信して変更を監視し、ビルドのソースを取得する方法を定義する、バージョン管理設定 (ソースへのパス、ユーザー名、パスワード、 チェックアウトモード 、その他の設定) のコレクション。 |
ビルドステップ | 実行するタスク。 TeamCity は、特定のビルドツール (Ant、Gradle、MSBuild など)、テストフレームワーク (NUnit など)、またはコード解析エンジンとのネイティブ統合を有効化する、複数の組み込み ビルドステップ を提供します。 そのため、1 回のビルドで複数のステップを実行し、テストツール、コードカバレッジ、プロジェクトのコンパイルなどを順番に実行できます。 |
ビルドトリガー | 特定のイベントで新しいビルドを開始するルール。 たとえば、 VCS トリガーは、TeamCity が 変更を設定済みの VCS ルートで検出するたびに、自動的に新しいビルドを開始します。 |
変更 | 紹介したソースコードの修正。 変更がバージョン管理システムにコミットされているが、まだビルドに含まれていない場合は、特定のビルド構成について保留中と見なされます。 |
ビルド | エージェントで実行される CI/CD ジョブ。 これは、コンパイル、テスト、デプロイ、レポートの作成など、あらゆるサービスタスクを実行できる 1 つ以上のステップで構成されます。 ビルドという用語は、ビルドの実際のプロセスとビルドの結果の両方を指します。 ビルドがトリガーされると、 ビルドキューに配置され、互換性のあるエージェントが利用可能になると開始されます。 ビルドが完了すると、ビルドエージェントは ビルドアーティファクトをサーバーに送信します。 |
ビルドキュー | トリガーされ、開始を待機しているビルドの一覧です。 TeamCity は、エージェントがアイドル状態になるとすぐに、それらを 互換性のあるビルドエージェントに配布します。 キュー内のビルドは、エージェント上で開始される時点でそのエージェントに代入されます。ビルドがビルドキューで待機している間、事前代入は行われません。 |
ビルドアーティファクト | ダウンロード可能になった、ビルドによって生成されたファイルです。例: インストーラー、WAR ファイル、レポート、ログファイル。 |
TeamCity における基本的な CI ワークフロー
サーバーとエージェント間のデータフロー、エージェントに渡される内容、TeamCity が結果を取得する方法とタイミングを理解するために、単純なビルドライフサイクルを見てみましょう。

TeamCity サーバーは、VCS ルート (リポジトリ) の変更を検出します。
サーバーはこの変更をデータベースに保存します。
ビルド構成に添付されたトリガーは、データベース内の関連する変更を検出し、ビルドを開始します。
トリガーされたビルドがビルドキューに表示されます。
ビルドは、互換性のある無料のビルドエージェントに割り当てられます。
エージェントは、ビルド構成に記述されているビルドステップを実行します。 ステップの実行中、エージェントはビルドの進捗を TeamCity サーバーに報告します。 すべてのログメッセージ、テストレポート、コードカバレッジの結果がオンザフライで送信されるため、ビルドプロセスをリアルタイムで監視できます。
ビルドが終了すると、エージェントはビルドアーティファクトをサーバーに送信します。