TeamCity 2020.1ヘルプ

TeamCity 2019.1の新機能

新しいTeamCityドキュメントWebサイト

TeamCity 2019.1のドキュメントを改善して、より良いユーザーエクスペリエンスを作成し、すべての会社の製品のドキュメント間で共通のルックアンドフィールを確保するようにしました。

主な製品ドキュメントは、新しいドキュメントWebサイトからアクセスできます。

現在、プラグイン開発ヘルプは別の場所(英語)にあり、そのソースファイルはパブリックGitHubリポジトリ(英語)に移動されているため、コミュニティは貢献できます。

以前のバージョン(英語)ドキュメント(英語)はConfluenceで入手できます。

TeamCity UIの実験的な改訂

新しいTeamCityバージョンには、製品の使用感を向上させることを目的とした、作り直されたUIが付属しています。

SakuraUI

  • 新しいサイドバー : すべてのプロジェクトに簡単にアクセスして検索したり、サイドバーから構成を構築したり、ビルド構成またはプロジェクト全体をお気に入りとしてタグ付けしたりして、サイドバーの上部に表示できます。新しい変更、ビルドステータス、新しいテスト、およびビルドの実行中:すべてが表示されるようになりました。

  • 再構築されたプロジェクト・ホームページでは、ビルド構成をダッシュボード形式で表示できます。各構成には独自のカードがあり、最新のビルドが最大14個までヒストグラムで表示されます。ステータス、ビルド時間、およびキュー内の時間も表示されます。個々のカードをクリックすると、このビルド構成の概要が表示されます。

  • 改善されたブランチタブ:ブランチはカテゴリに分割され、必要に応じて展開したり折りたたんだりすることができます。これにより、ブランチの概要を把握し、簡単に閲覧することができます。

    SakuraBranches

  • 拡張可能なビルド行 :現在、TeamCityはページ上のビルドに関する詳細を表示できます。特定のビルドに関する詳細が必要な場合は、それをクリックすると行が拡張されて詳細な情報が表示されます。

  • 新しいUIは実験段階にあり、画面の右上隅にあるアイコンを使用して切り替えることができます。プロファイルに新しい設定があり、デフォルトでテスト運用UIが有効になります。すべての機能が新しいUIでサポートされているわけではないため、必要に応じて古典的なTeamCityスタイルに戻るのは簡単です。

GitLabのサポート

TamCity 2019.1 supports GitLab. It allows creating connections to GitLab.com(英語) and GitLab CE / EE(英語) so you could easily select a predefined GitLab repository when creating a new project or a build configuration.
To be able to authenticate to GitLab during the connection, register an OAuthアプリケーション(英語) in GitLab with the api and read_repository scopes and generate a secret and an application ID.
Enter the secret and application ID, along with the GitLab server URL, when adding a new connection.

GitLabConnection

GitLabマージリクエストのサポート

GitLabのマージリクエストのサポートも追加されたため、マージ要求ごとに自動的にビルドを実行し、ビルドが成功した場合は自動的に承認するようにTeamCityを設定できます。

Bitbucket サーバープルリクエストのサポート

Now the プル・リクエスト build feature can detect pull requests created in Bitbucket Server.
To add a Bitbucket VCS root, select Bitbucket サーバー as a VSCホスティングタイプ and configure the connection parameters:

  • 認証タイプ: VCSルート認証情報またはユーザー名/パスワード

  • ゴールによるろ過PR ブランチ

  • Bitbucket サーバーのベースURL

PR BitbucketServer

TeamCityマルチノード設定の改善

To improve scalability of TeamCity, we're working on the ability to set up a cluster, where the main node distributes different responsibilities among other nodes and also handles such tasks as upgrading, licensing, diagnostics, and server configuration. Such multinode setup implies that all secondary nodes are uniform and can perform all tasks in an interchangeable way.
In addition to the tasks that can already be performed by a secondary node, in this version secondary nodes can be assigned the "processing the build lifecycle" responsibility, which releases the main server from the build-related tasks, such as processing builds messages coming from agents, and allows you to significantly increase the number of agents.
As a result, it is possible to start a single secondary node and assign several responsibilities to it or distribute these responsibilities between several secondary nodes:

  • VCSの変更収集

  • ビルド処理の実行

  • 読み取り専用バックアップノードとして機能: 読み取り専用モードでユーザーインターフェースを提供する

ノード上のキャッシュ構成ファイル

In a multinode setup, the TeamCity Data Directory is shared among secondary nodes via network. When a secondary node launches, it reads configuration files located in the shared Data Directory. In large setups with thousands of projects and build configurations, downloading lots of files from network storage can take a lot of time.
In TeamCity 2019.1, we have optimized this operation by creating a cache of configuration files stored under the node local Data Directory. The files are cached on the first node launch and then updated in runtime which makes the next launches faster.

Amazonスポットインスタンスの改善

AWS Spot Fleetリクエスト

You can now configure spot fleets(英語) (collections of instances) to run images, which allows cutting costs by always utilizing just enough instances.
To configure an allocation strategy for a spot fleet, open the AWS Management Console and go to EC2 | スポットリクエスト | スポットインスタンスのリクエスト . Here you can select the strategy, set the target capacity, add tags, and so on. Refer to スポットフリート要求(英語) for more information on the available parameters. When you are done, download the configuration as a JSON file. Now you can add this configuration to the settings of an Amazon image in TeamCity. Select ' スポットインスタンスフリート ' in the ' ソース ' drop-down list, insert the JSON configuration into the text area below, and save the new image configuration.

SpotFleetConfig

エージェント | クラウドタブで、実行中のすべてのインスタンスの状態を監視できます。

その他の改善

EC2サービスがインスタンスを管理する方法に応じて、スポットインスタンスでは「最大価格」の値をオプションにしたため、オンデマンドのインスタンスとまったく同じように起動できます。

成果物の公開オプションを作成する

Build artifacts may comprise distribution packages, log files, reports, and so on, taking up a lot of storage space. When a build fails often, you may want to restrict artifacts publishing to successful builds only in order to save disk space.
In other cases, you may need to investigate artifacts even if a build has been interrupted.
To support all these scenarios, we have added two new options for publishing artifacts to the General Settings of a build configuration.

これで、成果物をいつ公開するかを選択できます。

  • ビルドが失敗しても(デフォルト):以前のバージョンのTeamCityと同様に、前のステップがすべて完了したかどうかにかかわらず、成果物はビルドの最後のステップで公開されます。'stop' コマンドが発行されると、成果物は公開されません。

  • ビルドステータスが成功した場合のみ新規):前のステップがすべて正常に完了した場合、成果物はビルドの最後のステップで公開されます。TeamCityは、成果物を公開する前に、サーバー上の現在のビルド状況を確認します。

  • build stopコマンドが発行された場合でも常に新規):アーティファクトは、中断されたものであっても(ビルド失敗条件で指定された 'stop'コマンドの発行後またはタイムアウト後など)、すべてのビルドに対して公開されます。

Go 言語サポート

TeamCityは現在Go言語をサポートします。

Goプロジェクトをビルドするには:

  1. Goコンパイラーがエージェントにインストールされていることを確認してください。

  2. 'Golang'ビルド機能をビルド構成に追加してください。

TeamCity UIでGoテストを確認するには、コマンド行ビルドランナーのスクリプト go test -json-json フラグを追加して実行するか、env.GOFLAGS = -json パラメーターをビルド構成に追加します。

GoEnvParameter

リビジョンを同期せずにスナップショット依存関係を使用する

In a TeamCity build chain, all builds linked via snapshot dependencies use the synchronized revision of the source code, but in some cases this may be undesirable.
In this version you can disable revision synchronization in a snapshot dependency via the リビジョン同期を強制する option, for example, when promoting an older build to a deployment build configuration. The build will be run using the latest deployment scripts.

EnforceRevisionSync

ビルド構成のVCS用ブランチフィルタ

ビルドトリガーまたはテスト詳細のフィルタと同様に、ブランチフィルタをビルド構成のバージョン管理設定に追加しました。TeamCityの以前のバージョンでは、VCS設定はデフォルトのブランチでのみビルドを無効にすることを許可していましたが、ブランチフィルタはより柔軟なアプローチを提供します。ブランチをフィルタリングするには、ブランチの設定で説明されている構文を使用します。

VCS ブランチフィルタは他のブランチフィルタの前に適用され、カスタムビルドダイアログに表示されるブランチ、トリガに表示されるブランチ、およびスナップショットの依存関係からの変更を制限します。

すべてのセッションからログアウトする

If a user's password is compromised and Built-in Authentication is enabled on the TeamCity server, changing a user password does not mean that the user is logged out of all current sessions in progress, which is a potential security risk.
Now there is a new option in your user profile, すべてのセッションからログアウトする , forcing TeamCity to invalidate all user sessions with the user set, including the current one. The administrator account also has an option to force the user to log out of all sessions. It is also possible to log off all users using the corresponding option on the 管理 | 認証 page.

トークンベース認証

In addition to basic authentication via credentials, TeamCity now supports authentication based on permanent access tokens. With tokens, you don't need to expose a user login and password in scripts. Tokens are also useful for the REST API authentication.
You can enable/disable the Token-Based Authentication module in the advanced mode of the 認証 page:

TokenAuth

TeamCity-YouTrack統合における認証用の永久トークン

TeamCityとYouTrackの統合を使用している場合は、ログインパスワード認証は推奨されておらず、もうすぐYouTrackではサポートされなくなります。

TeamCity-YouTrack統合は、REST API呼び出しでのトークンベースの承認をサポートするようになりました。トークンを取得し、プロジェクト設定 | 課題トラッカーページの課題追跡システムへの接続設定で指定することをお勧めします。

サービスメッセージによるビルドのキャンセル

When you need to cancel a build from a script, for example, a build cannot proceed normally due to the environment, or a build should be canceled form a subprocess, it is possible to do it via the TeamCity REST API passing the build ID, the server URL, as well as the authentication parameters (username and password) to the script.
Now TeamCity offers a more elegant way of using a service message to do that just add a line to your build script telling TeamCity to cancel the build. If required, you can re-add the build to the queue after canceling it:

echo ##teamcity[buildStop comment='canceling comment' readdToQueue='true']

TeamCityサービスメッセージについてさらに読む

より高速なエージェントのアップグレード

以前は、ビルドエージェントはサーバーのアップグレード直後に利用可能なすべてのツールをサーバーからダウンロードしていたため、サーバーの負荷が大幅に低下し、速度が低下する可能性がありました。サーバーへのエージェントの要求の影響を減らし、エージェントのアップグレードをスピードアップするために、エージェントはこれらのツールを要求する最初のビルドを開始するときにのみサーバーからツールをダウンロードするようになりました。ダウンロードされたツールはエージェントに保存されるため、ビルドはそれらを再度ダウンロードすることに時間を費やすことはありません。

エージェント上のすべてのビルド用に別々のMaven成果物リポジトリ

Mavenのローカルアーティファクトリポジトリ設定の選択を変更し、エージェントによって実行されるすべてのビルドに対して個別のリポジトリを作成するオプションを追加しました。

変更点は次のとおりです。

旧オプション

新しいオプション

説明

    エージェントごと (デフォルト)

    エージェントによって実行されるすべてのビルドによって生成された成果物をエージェントのシステムディレクトリに格納するには、別のリポジトリを使用します。

    「このビルド構成に独自のローカルリポジトリを使用する」を有効にしました。

    ビルド構成ごと

    現在のビルド構成のすべてのビルドによって生成されたアーティファクトを格納するために別のリポジトリを使用します。

    「このビルド構成に独自のローカルリポジトリを使用する」を無効にする

    Mavenのデフォルト

    デフォルトのMavenリポジトリの場所を使用します。リポジトリは、すべてのビルド構成とマシン上のすべてのエージェント間で共有されます。

    その他の改善

    • 'Dockerサポート'機能がビルド構成に追加された場合、TeamCityサーバーはインストールされたDockerに対するエージェント要件を自動的に追加するため、ビルドは互換性のあるエージェント上でのみ実行されます。

    • このバージョンから開始して、TeamCityは関連ランナーでVisual Studio2019をサポートします:Visual Studio(sln)MSビルドVisual StudioテストInspections(ReSharper)重複ファインダー(ReSharper)

    • 調査Auto Assignerに新しいオプション '2回目の失敗時'が追加されます。これは、不安定なテストや問題に対するユーザーの割り当てを防止します。障害が2回連続して繰り返される場合にのみ、ユーザーに障害の調査が割り当てられます。

    • ビルド機能に基づいてエージェント要件を設定するための新しいAPI。

    • プル・リクエストへの以前のGitHubプルリクエストプラグイン。

    • サーバーの起動パフォーマンスが向上しました。

    • 調査ページに現在実行中のビルドの失敗が表示されます。

    • ビルド・ランナーは.NET フレームワーク 4.8をサポートします。

    既知の問題

    • .NET CLIを使用してNuGetコマンドを使用して資格情報を渡そうとするビルドの実行時に、以下のいずれかのエラーが表示されることがあります。

      • If .NET Core SDK 2.x is installed but its version is earlier than 2.1.400:
        " ファイルまたはアセンブリ 'System.Runtime、バージョン= <バージョン>、カルチャ=ニュートラル、PublicKeyToken = <キー>、またはその依存関係の1つをロードできませんでした。システムは、指定されたファイルを見つけることができません。 "

      • If only .NET Core SDK 3.0 is installed on your server:
        " エージェントにdotnetバージョン3.0のみがインストールされている場合、プラグインがパス<path>に見つかりませんでした。 "

      これらの問題を解決するには、現在のSDKバージョンに追加して.NET Core SDK 1.xまたは2.1.400以降をインストールすることをお勧めします。

    • DockerイメージとWindows Server 2019をプロセス分離で使用すると、ビルドエージェントが起動に失敗することがあります。この課題を回避するには、Dockerコンテナーに hyper-v 分離を使用します。

      docker run --isolation=hyperv …

    修正された課題

    修正された課題の全リスト(英語)

    以前のリリース

    TeamCity 2018.2の新機能(英語)

    関連ページ:

    TeamCityのドキュメント

    TeamCity 2020.xのドキュメントへようこそ! 以前のTeamCityバージョンを使用している場合は、ご使用のリリースのドキュメントを参照してください。入門TeamCityの使用開始、TeamCityのコンセプト、インストールTeamCityサーバーをインストールする、追加のビルドエージェ...

    TeamCityとVCSホスティングサービスの統合

    GitHub、GitHub Enterprise、Bitbucket Cloud、GitLab.com、またはGitLab CE / EEに組織アカウントがある場合は、TeamCityをこれらのソースコードホスティングサービスに接続すると、組織のユーザーが新しいプロジェクト、GitまたはMercur...

    プル・リクエスト

    Theプル・リクエストbuild feature lets you automatically load pull request (ormerge requestsin case of GitLab) information and run builds on pull request branc...

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

    TeamCity Amazon EC2統合により、AmazonアカウントでTeamCityを構成し、キューに入れられたビルドに基づいてTeamCityエージェントでオンデマンドでイメージを開始および停止できます。他のクラウドソリューションとの統合が可能です。概要:マシンイメージは、起動時にTeamC...

    機能ブランチを使用した作業

    分散バージョン管理システム(DVCS)のフィーチャーブランチを使用すると、メインの開発とは独立してフィーチャーを操作し、フィーチャーのすべての変更をブランチにコミットして、フィーチャーが完了したときにメインブランチに変更をマージできます。このアプローチは、ソフトウェア開発チームに多くの利点をもたらし...

    ビルド障害の調査とミュート

    何らかの問題やテストの失敗が原因でビルドが失敗した場合、TeamCityを使用すると、ビルドエラーの調査を特定のユーザーに割り当てたり、ビルドステータスに影響を与えないように失敗をミュートしたりできます。失敗したビルド構成全体の調査を割り当てるか、単一のビルドの問題と失敗したテストを調査/ミュートで...