TeamCity 2020.1 ヘルプ

TeamCity 2020.1 の新機能

条件付きビルドステップ

これで、新しい実行条件を使用してビルドステップを細かく制御できます。ビルドを実行すると、TeamCity は、現在の実行で構成されたすべての前提条件が満たされている場合にのみ、各ステップを実行します。

詳細なビルドステップ設定で、条件を追加をクリックし、TeamCity サーバーまたはエージェントによって提供されるビルドパラメーターの論理条件を指定します。次のような条件例の中からすばやく選択できます。

  • デフォルトのブランチでのみステップを実行する
  • リリースブランチでのみステップを実行する
  • 個人ビルドのステップをスキップする

または、カスタム条件を作成すると、TeamCity はサポートされているパラメーターと値を自動的に提案します。幅広い論理条件とパラメーターのセットが利用可能です。

Adding a parameter-based execution condition

すぐに使える Kubernetes サポート

TeamCity 2020.1 には、広く使用されている Kubernetes のサポート(英語)プラグインがバンドルされています。

TeamCity と Kubernetes の統合により、K8S クラスター内でクラウドエージェントを実行できます。特定のイメージから、Kubernetes デプロイから、またはカスタム pod テンプレートに基づいて、ビルドエージェントを起動する方法を選択できます。

Adding a Kubernetes image

TeamCity を Kubernetes と統合する方法については、ドキュメントをご覧ください。

バンドルされた統合により、インストールされている外部の Kubernetes サポートプラグインが置き換えられます。TeamCity の以前のバージョンでこのプラグインによって提供された Helm ランナーを使用していた場合は、2020.1 にアップグレードする前に、アップグレードノートを参照してください。

調査履歴

実践からわかるように、調査ツールは TeamCity ユーザーの間で広く受け入れられています。彼らは、ビルドの問題と失敗したテストのインスペクションを支援し、チームの責任あるメンバーに調査を割り当てることを可能にします。フィードバックに対応するため、調査の履歴を WebUI でアクセスできるようにしました。これは、誰がいつ調査を変更または解決したかを特定することが容易ではない大規模なチームやプロジェクトに最も役立ちます。

調査に適用されたすべてのアクションを表示するには、そのコンテキストメニューを開いて調査履歴をクリックします。

Investigation history

Azure DevOps のプルリクエストサポート

これで、TeamCity ビルドは、オンプレミスおよびクラウド Azure DevOps 2018 以降でプルリクエストを検出できます)。

それぞれのビルド機能を構成するには、ビルド設定 | 機能を構築するに移動し、ビルド機能を追加をクリックして、プルリクエストを選択します。

Azure DevOps の場合、TeamCity は他の VCS のようにプルリクエスト自体ではなく、マージブランチでリクエストを検出することに注意してください。各ビルドは、PR をマージした後のビルドの実際の結果を示す仮想ブランチで起動されます。ビルドには変更を伴うコミットと仮想マージコミットの両方が含まれます。

Jira Cloud で TeamCity ビルド情報を表示する

Jira Cloud との TeamCity 統合が拡張されました。現在、TeamCity は、ビルドのコミットでメンションされている Jira タスクにすばやくアクセスできるだけでなく、ビルド情報を Jira Cloud にリアルタイムでレポートします。このようにして、TeamCity サーバー自体をチェックする必要なく、Jira でビルドステータスを直接プレビューできます。

TeamCity build status in Jira Cloud

Jira Cloud との統合の構成の詳細については、ドキュメントを参照してください。

ビルド構成レベルの通知

TeamCity は、外部チャネル(メールや Jabber など)を使用して、登録済みユーザーにさまざまなビルドイベントについて通知できます。以前は、通知は各 TeamCity ユーザーまたはユーザーグループに対してのみ構成されていました。今回は、ビルド構成ごとに通知を設定でき、ユーザー固有の通知と同じルールのセットを提供する通知ビルド機能を導入しています。

このアプローチでは、特定の TeamCity ユーザーを参照する必要がなく、グループ通知に適しています。現在、この機能はメールと Slack による通知をサポートしています。

この機能を使用すると、ビルド構成テンプレートを作成することで、DSL で通知を記述し、多くのビルド構成に同様の通知を設定できるようになりました。

Slack との組み込み統合

このバージョン以降、Slack 統合が TeamCity に組み込まれました。プライベートメッセージまたは Slack チャネルを介して、特定のビルドイベントと詳細を含む通知を受信できます。

2 つの通知オプションを使用できます。

  • TeamCity の通常の通知と同様に、ユーザープロファイルのプロジェクトごとに構成された個別の通知

  • 単一のビルド構成(またはテンプレート内のプロジェクト全体)の通知を設定できるビルド構成レベルの通知。責任あるビルド機能の構成方法に関するさらに読み込む

Slack での TeamCity 通知の例:

TeamCity notification in Slack

新しいブラウザ通知機能

2020.1 リリースの範囲で、新しい TeamCity Browser Notifier 拡張機能を提供しました。ブラウザでアクティブな TeamCity セッションを自動的に検出し、カスタムルールに基づいて、ビルドステータスとイベントに関するリアルタイムの通知を送信します。拡張機能は、Mozilla Firefox、Opera、および Google Chrome(Microsoft Edge などのすべての Chromium ベースのブラウザーを含む)で使用できます。

新しい Browser Notifier は、非推奨の Windows Tray Notifier を置き換えることを目的としており、設定されているすべてのルールがあれば、それを自動的に使用します。

Notifier の便利な機能について詳しくは、ブログ(英語)をご覧ください。

プラグインを含む完全なエージェントのダウンロード

これで、サーバーで現在有効になっているすべてのプラグインがパックされた完全な TeamCity エージェントにアクセスできます。このオプションは、スクリプトを使用して(たとえば、クラウドで)エージェントイメージを作成する場合に最も便利です。

通常の TeamCity エージェントディストリビューションにはプラグインが含まれていません。エージェントは最初の起動時にプラグインをダウンロードします。完全なエージェントにはすべての有効なプラグインが含まれ、自動的に現在の TeamCity サーバーの状態との関連性が維持されます。これにより、ディストリビューションアーカイブが大きくなりますが、最初のエージェントの実行に費やされる時間が大幅に短縮されます。すべてのインスタンスは最初からサーバーと同期され、すぐにビルドを実行できます。

開始後、フルエージェントは通常のエージェントのように動作することに注意してください。TeamCity サーバーでプラグインの状態を変更した場合、サーバーと同期するにはすべてのアクティブなエージェントを再起動する必要があります。

完全なエージェントをダウンロードするには、TeamCity のエージェントページに移動し、ビルドエージェントをインストールするメニューを開いて完全な ZIP ファイルのディストリビューションを選択します。このアーカイブへのリンクをコピーして、自動化スクリプトで使用できます。承認は必要ありません。

Download TeamCity full agent ZIP

プロジェクトの安全な価値の管理

このリリースでは、プロジェクトトークンの操作が簡単になっています。

TeamCity で DSL ベースのプロジェクトのトークンを生成すると、これらのトークンは VCS のプロジェクトの DSL に保存され、それぞれの安全な値は TeamCity システム設定に保存されます。同じ DSL に基づいて新しい TeamCity プロジェクトを作成する場合、これらのトークンに対応する安全な値がこの新しいプロジェクトでも指定されていることを確認する必要があります。

この手順に対処するために、TeamCity は他のプロジェクトでプロジェクトのトークンの欠落している安全な値を自動的に探します。

プロジェクト設定 | バージョン対応設定 | トークンタブで、必要な安全な値を手動で入力できます。TeamCity が、編集を許可されている他のプロジェクトで同じトークンを見つけた場合、これらのプロジェクトで使用されている値をコピーするオプションがあります。

TeamCity Tokens tab

安全な価値を奪うをクリックして、このページに直接新しいトークンを追加することもできます。

カスタム暗号化キーのサポート

TeamCity は、プロジェクト構成ファイルで使用されるすべての安全な値をスクランブル形式で格納します。初期値は TeamCity データディレクトリに格納され、その安全性は主に環境のセキュリティに依存します。追加のセキュリティレベルとして、TeamCity は安全な値を保護するためのカスタム暗号化キーをサポートするようになりました。デフォルトのスクランブル戦略の代わりにカスタム暗号化を使用することにより、潜在的な悪意のあるアクションのリスクを最小限に抑えることができます。

この新しいオプションの詳細については、ドキュメントをご覧ください。

セカンダリノードの改善

各リリースでは、セカンダリノードでの TeamCity サーバーエクスペリエンスを最大限に活用できるようになっています。バージョン 2020.1 以降、セカンダリノードは次の機能をサポートしています。

  • 新しい責任 : ビルドトリガーの処理
    多くのプロジェクトとビルド構成のあるセットアップでは、メインサーバーの CPU のかなりの部分がビルドトリガーの継続的な処理に割り当てられます。1 つ以上のセカンダリノードに対してこの責任を有効にすると、トリガー処理タスクと必要な CPU 負荷をメインノードと責任のあるセカンダリノードに分散できます。

  • より多くのユーザーレベルのアクション
    セカンダリノードでは、ユーザー設定の変更、保留中の変更の確認、さまざまなエージェント関連のアクションの実行などが可能になりました。利用可能なアクションの完全なリストについては、ドキュメントを参照してください。

  • Web UI による自動更新
    メインサーバーエクスペリエンスと同様に、セカンダリノードで自動更新を使用します。

  • エージェント | クラウドタブ
    セカンダリノードでクラウドエージェントを直接監視できるようになりました。

テスト運用版 UI の新機能

すべてのエージェントを表示する

すべてのエージェントビューには、エージェントに関する最も重要な情報が表示されます。このビューは、多数のエージェントに対してより速く機能します。エージェントのステータスをすばやくプレビューし、1 つのダッシュボードでエージェントを並べて管理できます。

TeamCity experimental Agents tab

サイドバーでプロジェクトを並べ替える

実験的な UI に欠落している、最もリクエストされた機能の 1 つは、プロジェクトのリストをカスタマイズする機能でした。このリリースでは、この機能をテスト運用版の UI サイドバーに追加することで、お客様の要求に対応します。

プロジェクトのサイドバーのカスタマイズを開始するには、右上隅にあるwn-pencil.pngをクリックします。キーボードまたは UI 矢印ボタンを使用して、リスト内のプロジェクトまたはビルド構成を移動できます。この構成ウィンドウで、プロジェクトをお気に入りとして直接マーク / クリアすることもできます。

Customizing experimental sidebar

プロジェクトホームの改善

TeamCity 2019.1 の実験的な UI で導入されたプロジェクトホームページは、2020.1 でいくつかの便利な機能を受け取ります。

(1)プロジェクトの詳細を表示すると、ブロックが折りたたまれている場合でも、すべてのサブプロジェクトのビルド構成のステータスを確認できます。デフォルトのブランチのビルドのみが考慮されます。
(2)子サブプロジェクトまたはビルド構成を即座に追加できます。
(3)ビルド構成のコンテキストメニューから、設定のセクションにすばやくアクセスできるようになりました。

Customizing experimental sidebar

その他の改善

  • Java 11 は、Java 8. ではなく、TeamCity サーバー Windows インストーラーおよびサーバー Docker イメージにバンドルされています。

  • 2 番目の失敗時の調査の自動割り当てが最適化されました(詳細については、ドキュメントをご覧ください)。

  • TeamCity は、BCrypt アルゴリズムを使用してユーザーのパスワードをより安全に保管できるようになりました。

  • プロジェクト設定 | ビルドスケジュールタブには、代わりのフィルターオプションがあります。「保留中の変更がある場合にのみトリガする」オプションが有効になっているトリガーを非表示にします。これにより、ビルドの動作を調査する必要がある場合に、このオプションが無効になっているすべてのトリガーをすばやく見つけることができます。

  • 推奨されるセキュリティとパフォーマンスの実践に準拠するために、TeamCity エージェントの Docker イメージは次のようになります。
    • 非 root ユーザーで実行します。

    • 大量のデータの書き込みが必要なディレクトリには Docker ボリュームを使用します。

  • test_names ディクショナリテーブルに多数のテスト名があるサーバーのメモリ使用量が最適化されました。

修正された課題

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

アップグレードノート

2019.2.x から 2020.1 への変更

以前のリリース

最終更新日 :

関連ページ:

ビルドステップ条件

ビルドステップを設定するときに、一般的な実行ポリシーを選択できます。TeamCity 2020.1以降、パラメーターベースの実行条件を追加できます。実行条件により、ビルドがより柔軟になり、次のような多くの一般的な使用例に対応します。デフォルトのブランチでのみステップを実行する、ブランチでのみステップ...

Kubernetes用のTeamCityの設定

バージョン2020.1以降、KubernetesのサポートプラグインはTeamCityにバンドルされています。プラグインは、Kubernetesタイプのクラウドプロファイルを追加し、K8Sクラスターでビルドエージェントを実行できるようにします。外部Kubernetesサポートプラグインに含まれている...

Investigating and Muting Build Failures — TeamCity

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

Pull Requests — TeamCity

プルリクエストビルド機能を使用すると、プルリクエスト(または GitLab の場合はマージリクエスト)情報を自動的にロードし、GitHub、Bitbucket サーバー、GitLab、および(バージョン 2020.1 以降)Azure DevOpsのプルリクエストブランチでビルドを実行できます。こ...

Jira クラウド統合

Jira クラウド統合ビルド機能により、ビルドステータスを直接 Jira Cloud にリアルタイムで報告できます。Jira ソフトウェアクラウド REST APIを使用し、Jira との通常の統合と比較して追加の認証パラメーターが必要です。これは、TeamCity インターフェースのみに影響します...

ビルド構成テンプレート

概要 :構成テンプレートを作成するを使用すると、ビルド構成設定の重複を排除できます。複数の類似した(必ずしも同一ではない)ビルド構成が必要で、各構成を編集せずに 1 つの場所で共通の設定を変更できるようにする場合は、それらの設定を使用してビルド構成テンプレートを作成します。テンプレート設定を変更する...