TeamCity オンプレミス 2023.11 ヘルプ

TeamCity 2023.11 の新機能

マトリックスビルド

TeamCity では、ビルドパラメーターを利用して、ビルドスクリプト、構成 / プロジェクト設定、コマンドライン引数など全体の生の値を置き換えることができます。通常、各パラメーターには値が 1 つだけ格納されます。バージョン 2023.11 以降では、マトリックスビルド機能を構成に追加して、可能なパラメーター値の範囲を指定できます。このような構成を実行すると、TeamCity は複数のビルドを生成し、これらの値を自動的に循環させます。

Matrix Build setup

それぞれに独自の値のセットを持つ複数のパラメーターを追加すると、行列が形成されます。TeamCity は、この行列の各セルに対してビルドを実行し、結果を概要ページにレポートします。これにより、どのパラメーター / 値の組み合わせが失敗しているかを一目で特定できるようになります。

Matrix Build Summary screen

マトリックスビルド機能には、インストールされているオペレーティングシステム、デフォルトの Java バージョン、およびアーキテクチャによって異なる環境でビルド構成を実行できるように、ビルド構成を迅速にセットアップできる複数の事前構成オプションが用意されています。

詳細: マトリックスビルド

Amazon Web サービスの統合

EC2 プラグインのアップデート

Amazon EC2 統合プラグインを全面的に見直しました。リフレッシュされたプラグインには、外観が新しくなったほかに、次の機能強化が加えられています。

  • Mac AMI を利用するイメージを作成できるようになりました。Mac VM は、少なくとも 1 日予約する必要がある専用の Mac Mini ホスト上でのみ実行できます。更新された TeamCity EC2 プラグイン UI を使用して、タグを指定して適切なホストを見つけることができるようになりました。

  • クラウドイメージに複数のインスタンスタイプを指定できるようになりました。この機能強化により、クラウドエージェントのセットアップの汎用性と信頼性が向上し、スポットインスタンスを予約できる可能性が高まります。

  • サブネットフィールドは複数の値を受け入れるようになり、受信トラフィックルールと送信トラフィックルールの異なるセットを指定できるようになりました。

  • 新しいイメージの優先順位設定を使用すると、クラウドのイメージの範囲を指定できます。TeamCity が新しいクラウドエージェントを起動する必要がある場合、(このイメージがまだアクティブエージェントの制限に達していないことを前提として) 最も高い優先順位番号を持つイメージを優先します。

  • TeamCity は、スポット配置スコア(英語)に基づいて、スポットリクエストが成功する可能性が最も高いリージョンまたはアベイラビリティゾーンを自動的に選択できるようになりました。TeamCity リクエストを許可してこれらのスコアを利用するには、ec2:GetSpotPlacementScores IAM 権限を追加します。

詳細: Amazon EC2 用の TeamCity のセットアップ

S3 プラグインのアップデート

バージョン 2023.11 には、次の機能強化を備えた更新された S3 プラグインが同梱されています。

Updated S3 Plugin
  • Amazon S3 バケットと S3 互換ストレージ (MinIO(英語)バックブレイズ B2(英語) など) の両方を念頭に設計された、直感的で合理化された UI。

  • 転送加速(英語)が有効になっているバケットのサポート。

  • 設定項目を減らして簡単にセットアップできます。すべての接続関連のプロパティが、選択した AWS 接続から取得されるようになりました。AWS リージョンは、選択したバケットから自動的に取得されます。

  • TeamCity がすべてのカスタム S3 ストレージに対してデフォルトで実行する整合性検証を無効にする機能。

詳細: Amazon S3 および S3 互換ストレージ | アップグレードノート

AWS 接続の改善

AWS 接続の新しいサブプロジェクトで利用可能およびビルドステップで利用可能設定を使用すると、これらの接続が不要な TeamCity プロジェクトや機能 (例: AWS 認証情報またはカスタム S3 ストレージ ) によって使用されないようにすることができます。

Share AWS connections

さらに、Amazon ガイドラインに従い、永続的なユーザー認証情報を必要としない安全な AWS 接続を構成する方法については、ドキュメント記事「接続の構成」の新しいセクションを参照してください: 推奨されるセットアップ

詳細: Amazon Web サービス (AWS)

VCS 統合

GitHub

シームレスな GitHub アプリ登録

バージョン 2023.05 では、GitHub および GitHub Enterprise への新しいタイプの接続を導入しました。これらの接続では、リポジトリへの従来の OAuth ベースのアクセスの代わりに、GitHub アプリ(英語)が利用されます。

バージョン 2023.11 以降では、新しいアプリを手動でセットアップして GitHub に登録することなく、これらの接続をより迅速に作成できるようになります。コネクションの追加ダイアログで自動作成モードを選択すると、残りは TeamCity が実行します。

GitHub Manifest App Button

詳細: 接続を構成

リフレッシュ可能なトークン

GitHub アプリの接続のリフレッシュ可能なアクセストークンを発行できるようになりました。

JetBrains Space

自動接続

このリリースでは、TeamCity プロジェクトと JetBrains Space プロジェクト間の統合をセットアップするための最新の手間のかからない方法を導入します。TeamCity に必要なすべての権限を付与する Space アプリケーションを手動で作成、セットアップ、インストールする代わりに、このルーチンを TeamCity に委譲できるようになりました。しなければならないことは、TeamCity を適切な Space 組織に向けることだけであり、残りのことは自動的にやってくれます。

New Space Project Connection

更新された統合では、次の 2 種類の接続が利用されます。

  • 組織接続 - TeamCity が組織内のプロジェクトのリストを取得し、新しい Space アプリケーションを作成できるようにする基本的な Space アプリケーションを作成します。

  • プロジェクト接続 - 親組織接続を使用して、TeamCity が個々の Space プロジェクトにアクセスできるようにするアプリケーションを作成します。

詳細: 接続を構成

ステータスの自動公開

このバージョン以降、JetBrains Space リポジトリをターゲットとする TeamCity ビルド構成では、ビルド関連の更新をポストするために構成されたステータス発行者のコミットビルド機能は必要ありません。事前定義された Space のつながりを介して TeamCity プロジェクトをセットアップすると、ビルドステータスが自動的にポストされます。

Publish Space build statuses

コミットステータスパブリッシャー機能を手動で設定するオプションは、プロセスを完全に制御したい場合や、TeamCity がビルドステータスを自動的に公開できないカスタムセットアップの場合でも引き続き利用できます。

詳細: JetBrains Space

リフレッシュ可能なトークン

JetBrains Space 接続のリフレッシュ可能なアクセストークンを発行できるようになりました。

Perforce

クラウドエージェントでのソースの再利用

クラウドエージェントにマウントされた永続ストレージに存在する (または永続ストレージからコピーされた) ソースを再利用できるようになりました。以前のバージョンでは、新しいエージェントマシンで実行されている Perforce ビルドではこの動作は不可能でした。

詳細: チェックアウトされたソースをクラウドエージェントで再利用します

Perforce Helix Swarm の強化

バージョン 2023.11 では、ステータス発行者のコミットビルド機能の「Perforce Helix Swarm」パブリッシャーをオーバーホールしました。TeamCity は、(独自のテストを作成する代わりに) Swarm セットアップにすでに存在するワークフローとテストを利用できるようになりました。さらに、パブリッシャーは管理者アクセス権を持つユーザーの資格情報を必要としなくなりました。

Personal build in TeamCity

詳細: Perforce Helix Swarm との統合

GitLab

GitLab リポジトリをターゲットとするコミットステータスパブリッシャーおよびプルリクエスト機能は、リフレッシュ可能なアプリケーショントークンを利用して認証を通過できるようになりました。

Acquire access token for GitLab

Bitbucket クラウド

Bitbucket クラウドリポジトリを追跡するプルリクエスト機能には、次の 2 つの新しい認証タイプオプションがあります。

  • 対応する OAuth 接続経由で発行されたリフレッシュ可能なアクセストークン。

  • 特定のリポジトリ、プロジェクト、ワークスペースに対して発行される永続的なアクセストークン。

詳細: Bitbucket クラウドプルリクエスト

Bitbucket サーバーおよびデータセンター

プルリクエスト機能は、リフレッシュ可能な OAuth トークンを利用して、Bitbucket サーバー / データセンター上のリポジトリにアクセスできるようになりました。

詳細: プルリクエスト

Azure DevOps

ステータス発行者のコミットおよびプルリクエストビルド機能は、構成された TeamCity 接続から取得されたリフレッシュ可能なトークンを使用して認証を通過できるようになりました。

Azure OAuth in CSP

詳細: ステータス発行者のコミット | プルリクエスト

.NET

  • ビルドエージェントは、エージェントマシンにインストールされているすべての .NET ワークロードを返す DotNetWorkloads_<version> パラメーターを報告するようになりました。詳細: エージェントによって報告されたパラメーター

  • .NET ランナーは、vstest コマンドに除外されたテストアセンブリ設定を提供するようになりました。このフィールドでは、コマンドが無視するファイルへのパスを指定できます。

    Excluded assemblies for vstest
  • ビルドでバッチごとに大量の並列テストが実行される場合、TeamCity は潜在的なパフォーマンスの問題を軽減する代替テストフィルターモードに自動的に切り替えることができます。詳細については、この記事を参照してください: .NET の代替テストフィルタリング

カスタムビルドのスケジュールを設定する

ビルドを実行する特定の日時を設定できるようになりました。これを行うには、カスタムビルドを実行するダイアログを呼び出し、新しい日付セクションの設定を使用します。

Run custom build dialog, General Settings tab

詳細: カスタムビルドを実行します

ビルドキャッシュ

新しいビルドキャッシュ機能を使用すると、構成でビルドに必要なファイル (ダウンロードされた npm パッケージなど) をキャッシュし、連続するビルドで再利用できるようになります。この手法は、ビルドエージェントが過剰な操作をオフロードするのに役立ち、ビルドルーチンを大幅に高速化できます。

Build Cache feature

ファイルをキャッシュする構成では、将来のビルドとキャッシュを共有するだけでなく、ファイルを同じプロジェクト内の他のビルド構成に渡すことができます。

詳細: ビルドキャッシュ

JDK がバンドルされたエージェント

バージョン 2023.11 以降では、カスタム JDK にバンドルされた TeamCity エージェントのディストリビューションを構築できます。これらのディストリビューションを使用すると、エージェントとその動作に必要な JDK の両方を一度にインストールできます。

Full agent distributions page

カスタムエージェントディストリビューションを作成するには、管理 | エージェント JDK に移動し、新しい JDK オプションを追加します (この特定の JDK をダウンロードするには、プラットフォーム、アーキテクチャ、TeamCity のリンクを指定する必要があります)。

Add Agent JDK

新しいオプションが追加されると、TeamCity はカスタムエージェントディストリビューションの構築を開始します。エージェント | 概要ページのエージェントをインストールする | 完全なディストリビューションをクリックすると、カスタムエージェント + JDK バンドルをダウンロードできます。

詳細: TeamCity エージェントをインストールします

バージョン対応設定: VCS から追加設定をロードする

このバージョン以降、TeamCity はバージョン管理システムに保存されている設定からカスタムスナップショットの依存関係、VCS ルート、チェックアウトルールをロードできるようになりました。その結果、バージョン管理された設定を編集し、デフォルト / 安定版ブランチの設定とは大幅に異なる設定でカスタムブランチを作成する柔軟性がさらに向上しました。

これらの以前に無視された設定を検出すると、TeamCity は必要な非表示エンティティ (仮想ビルド構成など) を動的に作成します。これらのエンティティは現在のビルドに対してのみ有効で、異なる設定を使用する他のリビジョン / ブランチに対しては非表示のままになります。

5-Step Setup

更新された動作を有効にするには、プロジェクトのバージョン対応設定ページでスナップショットの依存関係とバージョン管理設定の変更を適用するオプションにチェックを入れます。

詳細: スナップショットの依存関係とバージョン管理設定の変更を適用します

プライマリビルドから並列ビルドのアーティファクトにアクセスする

並列テストビルド機能を使用するビルド構成を実行すると、TeamCity はビルドをバッチに分割し、自動生成されたチェーンで相互接続します。以前のバージョンでは、このようなビルド中に生成されたアーティファクトはこれらの個別のバッチビルドで公開されていましたが、親ビルドには何も公開されていませんでした。

Artifacts in parallel testing

回避策として、完了した構成ビルドを表示するときに依存関係タブに切り替えることができます。

Artifacts in parallel testing 2

このバージョン以降、バッチビルドによって生成されたアーティファクトは、メインビルドのアーティファクトタブに集約されます。teamcity.build.parallelTests.currentBatch パラメーターを使用して、バッチビルドによって生成されたアーティファクトを別のディレクトリに配置することもできます。

Aggregated artifacts

詳細: バッチビルドによって生成されたアーティファクトの公開

ステップのステータスと ID

バージョン 2023.11 以降では、ステップの ID を指定できるようになりました (プロジェクト ID や構成 ID と同様)。

Step ID

TeamCity は、これらの ID を使用して、ステップの終了ステータス (「成功」、「失敗」、「キャンセル」) を報告する新しい teamcity.build.step.status.<step_ID> パラメーターを生成します。

Step statuses

これらの値を使用して、前のステップのステータスに応じてカスタムアクションを実行できます。例: カスタムのステップ実行条件を作成できます。

詳細: ステップステータスパラメーター

インスペクションランナー用の追加の ReSharper プラグイン

インスペクション (ReSharper) ランナーには R# CLT プラグインフィールドが追加され、JetBrains マーケットプレイスからダウンロードしたりローカルストレージからインストールしたお気に入りの ReSharper プラグイン (StyleCop(英語)CleanCode(英語)Unity サポート(英語)など) を追加できるようになりました。

ReSharper plugins list

詳細: JetBrains ReSharper コマンドラインツールの設定

サービスメッセージ

指定されたファイルの内容を追跡し、新しい行をビルドログにエコーできる新しいサービスメッセージが追加されました。

Stream file to log

詳細: ファイルをビルドログに書き込む

REST API

構成の移動

POST リクエストを次のエンドポイントに送信して、ビルド構成を別のプロジェクトに移動できるようになりました。

/app/rest/buildTypes/<BuildTypeLocator>/copy?<Target_ProjectLocator>

例: 次のリクエストは、「SourceProject_MyBuildConfig」ID を持つビルド構成を検索し、それを「MyProject2」に移動します。

http://localhost:8111/app/rest/buildTypes/id:SourceProject_MyBuildConfig/move?targetProjectId=MyProject2

クラウドインスタンスの終了

以前は、実行中のクラウドエージェントに DELETE リクエストを送信して、クラウドエージェントを終了することができました。

/app/rest/cloud/instances/<cloudInstanceLocator>

このバージョン以降、次のエンドポイントへの POST リクエストを介してクラウドインスタンスを停止できるようになりました。

/app/rest/cloud/instances/<cloudInstanceLocator>/actions/stop /app/rest/cloud/instances/<cloudInstanceLocator>/actions/forceStop

...actions/stop エンドポイントを使用して、「ソフト」停止リクエストを発行します。ターゲットエージェントが現在ビジー状態の場合、ビルドの完了後に停止します。

...actions/forceStop エンドポイントを使用すると、ビジー状態であってもクラウドインスタンスを停止できます。

詳細: クラウドインスタンスの開始と停止

Sakura UI と UX の強化

  • エージェントパラメータータブを作り直しました。TeamCity エージェントを表示するときにこのタブに移動すると、このエージェントの構成、環境パラメーター、システムプロパティを即座に確認できます。

    New Agent Parameters tab
  • 必要なエージェントプールをブックマークして、エージェントとプールのリストの上部から簡単にアクセスできるようになりました。

  • 依存関係タブには、構成名で特定の依存ビルドを検索できる検索パネルが表示されるようになりました。

  • バージョン 2023.05 で導入されたインタラクティブエージェントターミナルは、エージェントの詳細ページまたはビルド結果ページの下部にドッキングされたパネルで開くようになりました。別のタブで開くをクリックすると、別のブラウザータブに移動できます。

    Agent Terminal Window
  • パフォーマンスモニターは、消費された / 合計エージェントメモリの絶対値を表示するようになりました。

  • ビルドログタイムスタンプを絶対値から相対値に切り替えて、ビルドが特定の段階に到達するまでにかかった時間をすばやく分析できるようになりました。

    Relative timestamps
  • TeamCity UI の接続ページから接続 ID を表示およびコピーできるようになりました。このマイナーな機能強化により、接続 (AWS 認証情報の機能Docker サポートS3 アーティファクトストレージ他の接続を使用する AWS 接続など) を利用するオブジェクトの Kotlin DSL コードの作成が容易になります。

    Copy connection ID
  • クラウドイメージのビルド履歴タブには、このインスタンスが利用できなくなった場合でも、特定のクラウドエージェントのすべてのビルドを検索できる検索ボックスが表示されるようになりました。

    History for deleted agent
  • ナビゲーションバーでは、現在の TeamCity ユーザーによる変更が加えられたお気に入りプロジェクトの変更インジケーターが太字で表示されるようになりました。

    Highlighted projects with current user changes

その他

  • DslContext オブジェクトは、Kotlin DSL コードで TeamCity サーバーの URL を取得できる文字列 serverUrl プロパティを公開するようになりました。

  • TeamCity はエージェントをより効率的に分散し、失敗したビルドを含む大規模なビルドチェーンをより高速に処理します。バージョン 2023.11 以降、「依存関係が失敗した場合」の条件が「Make ビルドの開始に失敗しました」である依存ビルドは、依存関係が失敗またはキャンセルされたときに、利用可能なエージェントを待機しなくなりました。代わりに、依存ビルドのステータスはできるだけ早く「開始に失敗しました」に変更され、TeamCity はチェーンの次のビルドに進みます。

  • ステータス発行者のコミットビルド機能は、GitLab リポジトリの refs/(merge-requests/*)/head ブランチ (「マージ結果」ブランチ) をターゲットとする構成のビルドステータスを正しく公開するようになりました。以前は、マージ結果リビジョンの TeamCity ビルドを実行すると、パブリッシャーで HTTP 404 エラーが発生しました。

  • ユーザーが外部の 2FA で保護されたサービスの資格情報を使用して TeamCity にログインする場合、TeamCity は追加の 2FA 要求を送信しません。詳細: 過剰な認証リクエストの削減

  • ログ分析ツールがビルドログを取得するために使用する URL に dateFormat=<value> パラメーターを追加できるようになりました。詳細: DateTime パターンを変更します

  • builds_queuedbuilds_startedbuilds_runningbuilds_queued メトリクスに加えて、TeamCity は、エージェントから切り離されたビルドの数を表示できる実験的な builds_detached メトリクスを報告するようになりました。

アップグレードノート

アップグレードする前に、バージョン 2023.11 2023.05 との比較の重要な変更点について読むことを強くお勧めします。

解決された問題

実装された機能と修正された問題の概要については、TeamCity 2023.11 リリースノートの記事を参照してください。

ロードマップ

将来のアップデートについては、TeamCity ロードマップを参照してください。

フィードバックは重要です

皆様からのフィードバックを重視しており、ご意見やご提案を共有することをお勧めします。詳細については、リンクフィードバックを参照してください。

関連ページ:

ビルドパラメーターの設定

パラメーターは、TeamCity 全体で参照できるペアです。TeamCity には、次の 3 つの主要なパラメーター型があります。構成パラメーター — パラメーターの主な目的は、ビルド構成内で設定を共有することです。これらのパラメーターを使用して、テンプレートから作成された構成や meta-runner を使用する構成をカスタマイズすることもできます。TeamCity は、この型のパラメーターをビルドプロセスに渡しません (つまり、これらのパラメーターはビルドスクリプトエンジンからアクセスできません)...

マトリックスビルド

マトリックスビルドビルド機能を使用すると、指定されたパラメーター値を反復処理し、すべての組み合わせに対してビルドを生成することで、ビルドのコレクションを定義できます。例: 次のパラメーターで構成されたマトリックスビルドが与えられたとします。Browser: Chrome, Safari, Firefox env.ShouldFail: true, false Java: 11, 17, 21 マトリックスビルドがトリガーされると、、の指定された値のすべての組み合わせに対してビルドが実行され、次のビ...

Amazon EC2 用の TeamCity のセットアップ

TeamCity Amazon EC2 統合により、TeamCity は、現在のビルドキューのワークロードに応じて、クラウドでホストされているエージェントをオンデマンドで自動的に開始および停止することで、ビルドリソースを自動スケールできます。共通情報:TeamCity では、さまざまなタイプの EC2 統合をセットアップできます。使用する設定とソースに応じて、クラウド AWS ホスト型エージェントは以下で実行できます。同じ Amazon マシンイメージ (AMI) から複製された複数の同一のイ...

接続を構成

TeamCity を使用すると、外部サービスへの接続のプリセットを保存できます。これらのプリセットは、プロジェクトの作成、通知の構成、課題追跡システムとの統合など、サーバー上のさまざまな場所で再利用できます。この記事では、各タイプの接続を追加する方法について説明します。接続を追加するには、ターゲットプロジェクトの設定に移動し、接続ページを開いて、接続の追加をクリックします。接続タイプを選択し、表示名を設定して他と区別し、以下のように設定します。作成すると、現在のプロジェクトのネストされたすべての...

Amazon S3 および S3 互換ストレージ

TeamCity には、Amazon S3 Artifact Storage プラグインがバンドルされており、これにより、ビルドアーティファクトを Amazon S3 バケットや MinIO、バックブレイズ B2 などの S3 互換バケットに保存できます。S3 互換ストレージは、AWS 環境と AWS 以外の環境の両方でホストできます。新しい AWS S3 ストレージを作成してセットアップする:「管理 | <あなたのプロジェクト>」ページに移動し、「アーティファクトストレージ」タブに切...

アップグレードノート

2023.11.4 から 2023.11.5 への変更:バンドルされている Git は、サーバーイメージとエージェント Docker イメージの両方でバージョン 2.45.1 に更新されました。2023.11.3 から 2023.11.4 への変更:バンドルされている Git は、Linux および ARM 用のサーバーおよびエージェント Docker イメージの両方でバージョン 2.43.2 に更新されました。Windows イメージでは、現在利用可能な Git-Windows 用の最新バー...