TeamCity 2019.2 の新機能
新しい柔軟なクリーンアップルール
自動ビルドクリーンアップは、初期バージョン以降、TeamCity に存在していました。古い、不要なビルドデータを簡単に削除できます。提供されたカスタマイズオプションは非常に簡単に構成できますが、最も一般的なケースのみを対象としており、微調整はできません。
このリリースでは、クリーンアッププロセスを柔軟に制御するためのオプションをさらに導入しています。プロジェクトまたはビルド構成の既存の「基本ルール」に加えて、クリーンアップ中に保持するビルドとデータを指定するための複数の「保持ルール」を作成できるようになりました。保持ルールはよりきめ細かく、特定のタグ (たとえば、release
) を持つビルドや特定のブランチ内のすべてのビルドを保持するなどのケースをカバーできます。新しい保持ルールを使用するには、さまざまな種類のビルドとそのデータをよりよく理解する必要がありますが、柔軟性も向上します。
プロジェクト設定のクリーンアップ規則セクションを使用すると、現在のプロジェクトとそのサブプロジェクトとビルド構成の基本ルールと保持ルールを管理できます。
![クリーンアップルールページ Clean-Up Rules page](https://resources.jetbrains.com/help/img/teamcity/2024.07/clean-up-rules.png)
キープルールを追加するときに、次を指定できます。
保存するデータを作成する : 履歴、アーティファクト、ログ、統計、すべて。
ビルド範囲 : ルールの影響を受ける時間間隔または最後のビルドの数。
オプションで、ビルドをステータス、タグ、ブランチでフィルタリングします。ビルドを個人用に制限するか、non-personal のみに制限するかを選択します。
また、ルールを一致するブランチごとに個別に適用するか、選択したブランチ内のすべてのビルドに 1 つのセットとして適用するかを選択することもできます。
キープルールの例:
![ルールを保持する例 Keep Rule example](https://resources.jetbrains.com/help/img/teamcity/2024.07/keep-rule-example.png)
さらに読む掃除
メトリクススレポート
TeamCity は、診断 | メトリックタブに表示されるプロメテウス (英語) -compatible サーバーメトリクススを提供し、app/metrics
API エンドポイントを介して利用可能になりました。
メトリクスにアクセスするには、TeamCity ユーザーアカウントに「使用状況統計の表示」権限が割り当てられていることを確認してください。
メトリクスには以下が含まれます。
CPU、メモリ、システムの負荷
ビルドキューの処理にかかった時間
アクティブなユーザーセッションの数
およびその他
完全なリストは https://<teamcity-server-host>/app/metrics
で入手できます。
一部のメトリクスは実験的ですが、エンドポイント URL に ?experimental=true
クエリ文字列を追加するか、メトリックタブで「実験的メトリクスを表示」オプションを有効にすることで、すでにアクセスできます。
メトリクスを収集するには、Prometheus データベースまたはテレグラフ(英語)と InfluxDB(英語) の組み合わせを使用することをお勧めします。メトリクスを視覚的に表現するには、グラファナ(英語)または他の同様のソリューションを使用できます。
Grafana で表される TeamCity メトリクスの例:
![Grafana で表される TeamCity メトリクスの例 Example of TeamCity metrics represented in Grafana](https://resources.jetbrains.com/help/img/teamcity/2024.07/grafana-monitoring-example.png)
ビルドランナースクリプトでのコードのハイライト
コマンドライン、Ant、PowerShell、Docker、NAnt、Rake のスクリプト、Amazon EC2 イメージの構成に対して、自動コードハイライトと行番号付けを追加しました。
読みやすくするために、入力フォームの横にある をクリックして、コードにソフトラップを適用できるようになりました。
TeamCity での Dockerfile ハイライトの例:
![TeamCity での Dockerfile ハイライトの例 Example of Dockerfile highlighting in TeamCity](https://resources.jetbrains.com/help/img/teamcity/2024.07/code-hl.png)
EC2 起動テンプレートのサポート
TeamCity は、クラウドインスタンスの Amazon EC2 起動テンプレート(英語)をサポートするようになりました。多くの EC2 ユーザーは、すべての新しいインスタンスに対して一度定義された起動仕様を再利用できるため、起動テンプレートを高く評価しています。これにより、新しいインスタンスが要求されるたびに起動設定を記述する必要がなくなります。
クラウドプロファイルが Amazon サーバーに接続されている場合、TeamCity はこのサーバーで使用可能な起動テンプレートを自動的に検出します。テンプレートをイメージソースとして選択し、そのバージョンを指定するだけで、TeamCity はテンプレートパラメーターに基づいてインスタンスを要求します。
TeamCity 起動時のバックアップの復元
TeamCity サーバーインスタンスを初めて起動し、以前の TeamCity インストールのバックアップデータを復元する場合、起動画面の UI から直接バックアップを復元できます。
![自動バックアップ復元 Automatic backup restore](https://resources.jetbrains.com/help/img/teamcity/2024.07/backup-restore-ui.png)
統合された差分での個人ビルドの実行
これで、TeamCity UI または REST API を介してアップロードされた差分パッチに基づいて、ローカルの変更を含むパーソナルビルドを実行できます。
以前は、TeamCity サーバーをサポートされている IDE と統合することによってのみ、ローカルの変更に基づいて個人用ビルドを実行できました。これで、パッチを .diff
ファイルとして統一形式で保存し(たとえば、IntelliJ IDEA または git diff
コマンドを使用)、サーバーに直接アップロードできます。
パーソナルビルドのこの機能の詳細を参照してください。
これは実験的な機能であることに注意してください。TeamCity は、Git および IntelliJ IDEA によって生成された unidiff ファイルの安定した解析を提供します。非バイナリファイルでのバイナリ変更はサポートされていません。
クラウドプロファイル用の拡張 REST API
TeamCity REST API は、TeamCity UI で提供されるものと同じクラウド統合の詳細を公開する .../app/rest/cloud/profiles
、.../app/rest/cloud/images
、.../app/rest/cloud/instances
エンドポイントを提供するようになりました。
プルリクエストの定義済みビルドパラメーター
プルリクエストに関する重要な情報を公開するために、いくつかの定義済みビルドパラメーターを追加したため、ビルド構成の設定またはビルドスクリプトで使用できます。
クロスプラットフォーム dotCover のサポート
TeamCity では、クロスプラットフォーム JetBrains dotCover バージョン 2019.2.3+ をサポートすることにより、Linux および macOS 上の .NET Core プロジェクトのコードカバレッジを収集できるようになりました。
dotCover 2019.2.3 for Windows は TeamCity にバンドルされています。Windows 以外のプラットフォームでコードカバレッジを収集する必要がある場合は、管理 | ツールでクロスプラットフォーム dotCover ツールを追加し、.NET CLI ビルドステップで dotCover カバレッジを有効にします。Windows でもクロスプラットフォーム dotCover を使用する場合は、エージェントに .NET フレームワーク SDK 4.6.1+ がインストールされていることを確認してください。
また、コンテナーラッパー拡張を使用して、Docker コンテナー内の dotCover でコードカバレッジ分析を実行できます。
マルチノードセットアップの更新
セカンダリノードでのユーザーレベルのアクション
TeamCity の以前のバージョンでは、セカンダリノードは読み取り専用インターフェースを提供していました。ビルドをキューに追加したり、ビルドをタグ付け / 固定したり、その他のユーザーレベルのアクションを実行したりすることはできませんでした。このリリースでは、変更されます。これで、セカンダリノードに責任が与えられた場合(つまり、読み取り専用サーバーとして機能しない場合)、ユーザーのビルドアクションが有効になります。現在、サポートされているユーザーレベルのアクションは次のとおりです。
カスタムまたは個人のビルドを含むビルドのトリガー
ビルドを停止する
ビルドのピン留め / タグ付け / コメント
ビルドを削除する
調査の割り当てとミュートのビルドの問題とテスト
ビルドを成功 / 失敗としてマークする
ソースのマージとソースのラベル付けアクション
トラッカー TW-62749(英語) でサポートされているアクションの完全なリストを参照してください。
管理者レベルのアクションは、セカンダリノードではまだ使用できません。サーバー構成を変更する必要がある場合は、メインサーバーを使用します。
最適化されたサーバー側パッチがエージェントにダウンロードされます
このリリース以降、エージェントは、以前のようにメインサーバーからだけでなく、セカンダリノードからサーバー側パッチをダウンロードできます。
サーバー側パッチは、エージェントがエージェントマシン上で VCS クライアント実行可能ファイル (Git や Perforce など) を見つけられない場合によく使用されます。この場合、エージェントはサーバーに VCS の変更を含むパッチを作成し、それをエージェントに送信するように要求します。ここで、「VCS リポジトリのポーリング」および「ビルドによって生成されたデータの処理」の責任をセカンダリノードに割り当てると、エージェントはこのノードからもパッチを要求できるようになり、メインサーバーの負荷が大幅に軽減されます。
DSL ベースのプロジェクトの更新
TeamCity Kotlin DSL は、次の更新を受信します。
テスト運用版 UI の新機能
TeamCity 2019.2 は、再設計されたビルド詳細およびエージェントページ、およびその他の実験的機能を導入しています。
テスト的なビルドの詳細ページ
ビルドの詳細を表示する方法を再考するために、ビルド詳細ページを再設計して、視覚化を改善し、サイドバーを介して他のすべてのプロジェクトにすばやくアクセスできるようにしました。
![実験的ビルドの詳細ページ Experimental Build Details page](https://resources.jetbrains.com/help/img/teamcity/2024.07/exp-build-details.png)
現在のビルドページを移動せずに、以前のすべてのビルドとその詳細を即座にプレビューできます。
![ビルドトレンドプレビュー Build trends preview](https://resources.jetbrains.com/help/img/teamcity/2024.07/build-trends-preview.png)
視覚化されたビルドタイムラインは、各ステージの期間を反映し、ビルドの問題を示します。
![ビルドタイムライン Build timeline](https://resources.jetbrains.com/help/img/teamcity/2024.07/build-timeline.png)
ビルドステージをクリックして、ビルドログの対応する行を開きます。新しい UI では、長いログであっても、ダウンロードする必要がなく、プレビューに直接表示できます。
ビルドタイムラインとビルドログ以外に、概要タブからビルドの問題、テスト、変更、依存関係にすばやくアクセスできます。対応するタブも更新され、新しい機能が提供されるようになりました。
変更タブには、ビルドの変更に関する詳細情報が表示されます。ユーザーとアーティファクトの変更を個別に参照し、オプションでビルド設定の変更を表示できます。変更をクリックして詳細をプレビューします。
テストタブを使用すると、失敗したテスト、無視されたテスト、成功したテストをすばやく切り替えることができます。テストをクリックして詳細を表示し、調査を割り当てます。
依存関係タブには、ビルドの依存関係を表示する 3 つの代替モードがあります。視覚的なタイムライン、構造化リスト、ビルドチェーンです。
実験エージェントのページ
実験的なエージェントページは、多数のエージェントに対してより高速にロードされ、エージェントの詳細をすばやく切り替えることができます。サイドバーを使用して、エージェントプール階層を参照し、名前でエージェントとプールを検索できます。レポートセクションは、すべてのプールで実行中、アイドル、切断されたエージェントに関する統計を提供します。
![実験エージェントのページ Experimental Agents page](https://resources.jetbrains.com/help/img/teamcity/2024.07/exp-agents-page.png)
テスト運用版 UI のその他の新機能
2 つのビルドの比較
ビルドの比較機能を使用すると、同じ構成から 2 つのビルドを選択し、そのパラメーター、リビジョン、統計、テストに関する情報を並べて確認できます。これにより監視が容易になり、複数のユーザーがビルドを管理および監視する場合に特に役立ちます。例: ビルドのプロジェクトコードに変更がないのに、明らかな理由もなく失敗した場合、このビルドを最後に成功したビルドと比較し、その違いを分析して、失敗の最も可能性の高い原因を見つけることができます。
ビルドを別のビルドと比較するには、このビルドのアクションメニューを開き、比較をクリックして、比較するビルドを選択します。ビルドリストのビルドプレビューを展開
TeamCity では、ビルドのリストで最も重要なビルド結果を直接プレビューできるようになりました。ビルド構成ホームページで、リストのビルド行をクリックして詳細を表示します。お気に入りプロジェクトセクション
お気に入りのプロジェクトにすばやくアクセスできるプロジェクトセクションを移行しました。再設計された変更ポップアップ
ビルドの変更は時系列でソートされ、コードの変更とアーティファクトの依存関係の変更によってグループ化されるようになりました。作成者によって変更をフィルターし、ビルド構成設定で行われた変更の表示を切り替えることもできます。ビルドキューイングの理由に関する情報
ビルドがキュー内に長時間留まっている場合、トレンドまたはビルドリストでビルドをプレビューするときにキュー内ラベルをクリックすると、遅延の理由を確認できるようになりました。
その他の改善
アーティファクトの依存関係、再試行トリガー、プルリクエストビルド機能用にブランチフィルターが追加されました。
Dockerfile の変更の自動検出: Docker Compose ビルドランナーがエージェントで Docker イメージを作成すると、このエージェントに保存され、後のビルドで使用されます。これで、TeamCity は、イメージの作成に使用された Dockerfile が変更されたことを自動的に検出し、Docker Compose ステップにこのイメージの再構築を強制します。
サーバー上のすべての VCS ルートの最小ポーリング間隔として、グローバル設定で指定された VCS 変更チェックの間隔を実施できるようになりました。これにより、プロジェクト管理者はデフォルトよりも大きい間隔のみを設定できます。これにより、ポーリング要求の頻度が制限され、サーバーの負荷が軽減されます。
「プロジェクト内のユーザー / グループ通知ルールを変更する」権限が有効になっているプロジェクト管理者は、プロジェクトに割り当てられたユーザーとユーザーグループの通知ルールを編集できます。
これで、通常のビルドと同様に個人用ビルドを再実行できます。完成したビルドのコンテキストメニューを開き、このビルドを再実行をクリックします。
TeamCity は、
git fetch
プロセスで使用されるメモリ量を自動的に管理できます。
以前にteamcity.git.fetch.process.max.memory
内部プロパティを使用して、各 VCS ルートでフェッチに使用できるメモリ量を設定していた場合は、これを無効にして、メモリ消費の検出を TeamCity サーバーに委譲できます。teamcity.git.fetch.process.max.memory.limit
プロパティを使用して、使用可能なメモリの制限を制御できます。1 つのビルドに対して複数の SSH キーを構成できます。ビルドが複数の外部システムまたはリポジトリで認証する必要がある場合に役立ちます。ビルドで複数の SSH キーを使用するには:
プロジェクトレベル: これらのキーを SSH キーで指定します。
ビルド構成レベルで: キーごとに 1 つずつ、複数の SSH エージェントビルド機能を追加します。
TeamCity は、割り当てられた調査を解決するために改善されたルールを使用し、アクティブなブランチでミュートされた問題とテストをミュート解除します。現在、ビルドの問題(または失敗したテスト)がすべてのアクティブブランチで修正されるまで待機してから、ミュートを解除するか、調査を解決します。
再試行ビルドトリガーは、同じリビジョンの新しいビルドをトリガーし、キューの先頭に配置できるようになりました。
修正された問題
アップグレードノート
以前のリリース
関連ページ:
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/clean-up-inheritance.png)
TeamCity データのクリーンアップ
TeamCity のクリーンアップ機能により、古いビルドデータや不要なビルドデータを自動的に削除できます。サーバーのクリーンアップ構成は管理 | サーバー管理 | クリーンアップ設定で使用可能です。クリーンアップスケジュールの設定が可能で、一般的なクリーンアップ情報が表示されます。特定のプロジェクトに関連するクリーンアップルールは、プロジェクト設定 | クリーンアップ規則で構成されます。これらのルールは、クリーンアップするデータと保持するデータを定義します。これらは、プロジェクトまたはビルド構成...
![](https://pleiades.io/icons/teamcity.png)
コマンドライン
コマンドラインビルドランナーを使用すると、OS でサポートされている任意のスクリプトを実行できます。一般設定:作業ディレクトリコマンドを実行する作業ディレクトリを指定します(ビルドチェックアウトディレクトリと異なる場合)。実行モードを指定します: パラメーターを指定して実行可能ファイルを実行するか、カスタムシェル / バッチスクリプトを実行します(以下を参照)。コマンド実行可能このオプションは、実行ドロップダウンメニューでパラメーター付きで実行可能が選択されている場合に使用できます。開始する実...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-ec2-overview.png)
Amazon EC2 用の TeamCity のセットアップ
TeamCity Amazon EC2 統合により、TeamCity は、現在のビルドキューのワークロードに応じて、クラウドでホストされているエージェントをオンデマンドで自動的に開始および停止することで、ビルドリソースを自動スケールできます。共通情報:TeamCity では、さまざまなタイプの EC2 統合をセットアップできます。使用する設定とソースに応じて、クラウド AWS ホスト型エージェントは以下で実行できます。同じ Amazon マシンイメージ (AMI) から複製された複数の同一のイ...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/upload-patch-ui.png)
パーソナルビルドの実行
パーソナルビルドは、通常、バージョン管理にまだコミットされていない変更を使用する一般的なビルドシーケンスのビルドアウトです。パーソナルビルドは通常、サポートされている IDE の 1 つからリモート実行手順を介して開始されます。以下に説明するように、変更を加えたパッチをサーバーに直接アップロードすることもできます。個人用ビルドは、現在の VCS リポジトリソースと、リモート実行の開始時に識別された変更されたファイルを使用します。パーソナルビルドの結果は、対応する IDE プラグインのマイチェンジビ...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-test-rerun-flaky.png)
.NET
TeamCity には、.NET ビルドステップ、ビルドエージェントでの .NET 検出、リポジトリ内のビルドステップの自動検出を提供する .NET ツールチェーンの組み込みサポートが付属しています。このページでは、.NET ランナーの構成について詳しく説明します。チュートリアルとデモについては、このブログ投稿シリーズを参照してください。要件:.NET ランナーを使用するには、ビルドエージェントマシンに次のソフトウェアをインストールする必要があります。.NET CLI コマンド (クロスプラットフ...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/multinode-setup-2022.png)
高可用性のためのマルチノードセットアップ
TeamCity サーバーは、高可用性と柔軟な負荷分散のために複数のノード (またはサーバー) を使用するように構成できます。TeamCity ノードのクラスターをセットアップすることが可能です。各ノードは、ビルドからのデータの処理や VCS リポジトリからの変更の収集など、さまざまなタスクを担当します。または、すべての作業を行うメインノードを 1 つと、読み取り専用インターフェースを提供するセカンダリノードを 1 つ保持します。メインノードがダウンした場合、最小限のダウンタイムですべてのデータ...