TeamCity 2019.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はGitLabをサポートしています。それはGitLab.com(英語)GitLab CE / EE(英語)への接続を作成することを可能にします。それで新しいプロジェクトまたはビルド構成を作成するとき簡単に事前に定義されたGitLabリポジトリを選択することができました。
接続中にGitLabに対して認証できるようにするには、api および read_repository スコープを使用してGitLabにOAuthアプリケーション(英語)を登録し、シークレットとアプリケーションIDを生成します。
新しい接続を追加するときは、シークレットとアプリケーションIDをGitLabサーバーのURLと一緒に入力してください。

GitLabConnection

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

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

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

プルリクエストビルド機能は、Bitbucket サーバーで作成されたプルリクエストを検出できるようになりました。
Bitbucket VCSルートを追加するには、VSCホスティングタイプとしてBitbucket サーバーを選択し、接続パラメータを設定します。

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

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

  • Bitbucket サーバーのベースURL

PR BitbucketServer

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

TeamCityのスケーラビリティを向上させるために、メインノードが他のノード間でさまざまな責任を分散し、アップグレード、ライセンス、診断、およびサーバー構成などのタスクを処理するクラスターをセットアップする機能に取り組んでいます。このようなマルチノード設定は、すべてのセカンダリーノードが統一されており、すべてのタスクを交換可能な方法で実行できることを意味します。
このバージョンでは、セカンダリーノードですでに実行できるタスクに加えて、セカンダリーノードに「ビルドライフサイクルの処理」責任を割り当てることができます。これにより、ビルドメッセージの処理など、ビルド関連タスクからメインサーバーが解放されます。エージェントから、大幅にエージェントの数を増やすことができます。
その結果、単一の2次ノードを開始してそれに複数の責任を割り当てるか、または複数の2次ノード間でこれらの責任を分散させることが可能です。

  • VCSの変更収集

  • ビルド処理の実行

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

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

マルチノード設定では、TeamCityデータディレクトリーはネットワーク経由でセカンダリーノード間で共有されます。セカンダリーノードが起動すると、共有データディレクトリーにある構成ファイルを読み取ります。数千のプロジェクトとビルド構成を含む大規模なセットアップでは、ネットワークストレージから大量のファイルをダウンロードするのに時間がかかる場合があります。
TeamCity 2019.1では、ノードのローカルデータディレクトリーに格納されている構成ファイルのキャッシュを作成することにより、この操作を最適化しました。ファイルは最初のノードの起動時にキャッシュされ、実行時に更新されるため、次の起動が高速になります。

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

AWS Spot Fleetリクエスト

スポットフリート(英語) (インスタンスのコレクション)を構成してイメージを実行できるようになりました。これにより、常に十分なインスタンスのみを使用してコストを削減できます。
スポットフリートの割り当て戦略を設定するには、AWSマネジメントコンソールを開き、EC2 | スポットリクエスト | スポットインスタンスのリクエストに進みます。ここで、戦略の選択、ターゲット容量の設定、タグの追加などを行うことができます。使用可能なパラメーターの詳細については、スポットフリート要求(英語)を参照してください。完了したら、構成をJSONファイルとしてダウンロードします。これで、TeamCityのAmazonイメージの設定にこの構成を追加できます。'ソース'ドロップダウンリストで 'スポットインスタンスフリート'を選択し、JSON構成を下のテキスト領域に挿入して、新しいイメージ構成を保存します。

SpotFleetConfig

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

その他の改善

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

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

ビルド成果物には、ディストリビューションパッケージ、ログファイル、レポートなどが含まれ、多くの記憶領域を占有します。ビルドが頻繁に失敗する場合は、ディスク容量を節約するために、成果物の公開を成功したビルドのみに制限することをお勧めします。
それ以外の場合は、ビルドが中断されていてもアーティファクトを調査する必要があります。
これらすべてのシナリオをサポートするために、ビルド構成の一般設定に成果物を公開するための2つの新しいオプションが追加されました。

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

  • ビルドが失敗しても(デフォルト):以前のバージョンの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

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

TeamCityビルドチェーンでは、スナップショット依存関係を介してリンクされたすべてのビルドはソースコードの同期化されたリビジョンを使用しますが、これは望ましくない場合があります。
このバージョンでは、たとえば古いビルドをデプロイビルド構成にプロモートするときに、リビジョン同期を強制するオプションを使用してスナップショット依存関係のリビジョン同期を無効にすることができます。ビルドは最新のデプロイスクリプトを使用して実行されます。

EnforceRevisionSync

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

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

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

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

ユーザーのパスワードが危険にさらされ、TeamCityサーバーで組み込み認証が有効になっている場合、ユーザーパスワードを変更しても現在進行中のすべてのセッションからログアウトされるわけではありません。これは潜在的なセキュリティリスクです。
現在、TeamCityに現在のものも含めてユーザーセットとのすべてのユーザーセッションを無効にさせる、すべてのセッションからログアウトするという新しいオプションがユーザープロファイルに追加されます。管理者アカウントには、ユーザーにすべてのセッションからログアウトさせるオプションもあります。管理 | 認証ページの対応するオプションを使用してすべてのユーザーをログオフすることも可能です。

トークンベース認証

信任状による基本認証に加えて、TeamCityは現在、恒久アクセストークンに基づく認証をサポートしています。トークンを使用すると、ユーザーのログイン名とパスワードをスクリプトで公開する必要がなくなります。トークンはREST API認証にも役立ちます。
認証ページの詳細モードでトークンベース認証モジュールを有効/無効にすることができます。

TokenAuth

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

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

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

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

スクリプトからビルドをキャンセルする必要がある場合、たとえば、環境が原因でビルドを正常に進めることができない場合、またはサブプロセスからビルドをキャンセルする必要がある場合は、TeamCity REST APIを介してビルドIDを渡します。サーバーURL、およびスクリプトへの認証パラメーター(ユーザー名とパスワード)。
TeamCityは、サービスメッセージを使用して、TeamCityにビルドをキャンセルするように指示する行をビルドスクリプトに追加するという、よりエレガントな方法を提供します。必要に応じて、キャンセルした後にビルドをキューに再度追加できます。

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コマンドを使用して資格情報を渡そうとするビルドの実行時に、以下のいずれかのエラーが表示されることがあります。

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

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

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

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

      un --isolation=hyperv …

    関連ページ:

    TeamCityのドキュメント

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

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

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

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

    TeamCity Amazon EC2統合により、AmazonアカウントでTeamCityを構成し、キューに入れられたビルドに基づいてTeamCityエージェントでオンデマンドでイメージを開始および停止できます。他のクラウドソリューションとの統合については、次のページを参照してください。VMWare...

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

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

    ビルド問題の調査とミュート

    何らかの理由でビルドが失敗した場合、TeamCityは、どの変更がビルド失敗の原因であるかを判断する便利な手段を提供します。チームメンバーの一部を割り当てて、このビルドの失敗の原因を調査したり、自分で調査を開始したりできます。調査員が設定されると、調査員は対応する通知を受け取ります。TeamCity...