TeamCity 2024.03 の新機能
半自動セキュリティアップデート
セキュリティ問題の予防と軽減を常に最優先に行うために、TeamCity 2024.03 では重要なセキュリティアップデートを自動的にダウンロードするようになりました。このアプローチにより、システムを新たなリスクから保護し、重大な脆弱性に迅速に対処することができます。アップデートが自動的にダウンロードされた後も、システム管理者がそのインストールを承認する必要があることに注意してください。
新しいバンドルプラグイン: HashiCorp Vault
HashiCorp Vault サポート(英語)プラグインは、標準の TeamCity インストールの不可欠なコンポーネントになりました。このプラグインを使用すると、リモートソースに機密データを保存し、ビルドプロセス中に TeamCity パラメーターでこれらの値をシームレスに取得できるようになります。
HashiCorp Vault との TeamCity 統合を設定するには、新しい Vault 接続を作成し、それを使用して更新された新しいパラメーターの追加ダイアログでリモートシークレットパラメーターを設定します。
詳細: HashiCorp ボールトの統合。
信頼できないビルド
構成にプルリクエスト機能を追加すると、新しいコードをプライマリコードベースに統合する前に評価できます。この機能にはフィルタリングオプションが付属しており、すべてのコントリビューターからのビルドを実行するか、組織に所属するコントリビューターのみのビルドを実行するかを選択できます。前者を選択すると、TeamCity サーバーがプルリクエスト内に隠された悪意のあるコードにさらされる可能性があり、セキュリティ上の大きなリスクが生じます。逆に、後者を選択すると、より幅広いユーザーとのコラボレーションの機会が制限されます。
バージョン 2024.03 では、コラボレーションとセキュリティのトレードオフを排除する新しい設定が導入されています。プロジェクト設定の新しい信頼できないビルドグループにより、TeamCity は信頼できるユーザーが作成した変更と外部ソースからの変更を区別できます。新しいビルドは変更の作成者に関係なくトリガーされますが、検証されていない変更を組み込んだビルドは、指定されたレビュー担当者 (またはレビュー担当者のグループ) が実行しても安全であるとマークするまでキューに残ります。
詳細: 信頼できないビルド。
新しい dotCover ランナー
新しい dotCover ランナーは、複数の先行する .NET ステップからコードカバレッジスナップショットを自動的に取得し、これらの個々のスナップショットを使用して単一のカバレッジレポートを公開できます。
詳細については、dotCover を参照してください。
失敗した .NET テストの自動再試行
.NET ランナーが test
または vstest
コマンドを実行すると、ランナーの設定に新しいテスト再試行回数オプションが表示されます。このフィールドでは、同じビルド中に TeamCity が失敗したテストを再実行できる回数を指定できます。失敗したテストは、成功するか、最大試行回数に達するまで再起動されます。
この手法により、不安定なテストを識別し、起動試行回数に関係なく常に失敗する本当に問題のあるテストと区別することができます。
詳細: .NET | Vstest コマンド。
Gradle 構成キャッシュ
このバージョンから、TeamCity で実行される Gradle ビルドの構成キャッシュ(英語)機能を有効にできるようになりました。この機能は、構成フェーズの結果をキャッシュし、後続のビルドで再利用することで、ビルドパフォーマンスを大幅に向上させます。
詳細: 構成キャッシュ。
オプションのアーティファクト依存関係
アーティファクトの依存関係を使用すると、ビルド構成で他の構成 (または同じ構成の以前のビルド) によって生成されたファイルをダウンロードできます。これらの依存関係を作成するには、ダウンロードするファイルとその保存場所を定義するアーティファクトルールを指定する必要があります。
TeamCity がこれらのルールに一致するファイルを見つけられない場合、ビルドは「アーティファクトの依存関係を解決できません」というエラーで失敗します。この動作は、ダウンロードされたアーティファクトが依存ビルドの実行に必須ではない、より柔軟な設定を考慮していません。
バージョン 2024.03 以降では、アーティファクトルールによってファイルが生成されない場合でも、依存ビルドを実行できます。これを行うには、アーティファクトルールを ?:
プレフィックスで開始します。
詳細: アーティファクトの依存関係
強化された Git LFS およびサブモジュールのサポート
大規模ファイルシステム(英語)とサブモジュール(英語)は、スタンドアロンリポジトリをインポートし、大量のファイル (ビデオ、ビットマップ、データベースなど) を外部ホスティングにオフロードする、多くの複雑なソフトウェアソリューションの不可欠な部分です。バージョン 2024.03 では、パラメーターベースの資格情報を TeamCity プロジェクトに追加できます。ソースファイルをチェックアウトするときに、TeamCity はこれらの資格情報を使用して必要なファイルにアクセスし、ダウンロードします。この機能により、TeamCity を Sonatype Nexus LFS リポジトリ(英語)やその他の一般的なソリューションと統合できます。
詳細: LFS とサブモジュールのサポート。
パラメーターの新規作成ダイアログ
バージョン 2024.03 では、ビルドパラメーターを構成するときに使用するパラメーターの追加 / 編集ダイアログが再設計されました。
その他の注目すべき機能強化に加えて、更新されたダイアログでは、新しいパラメーター型リモートシークレットを選択できるようになりました。値をリモートソース (HashiCorp Vault など) から取得する必要があるパラメーターの場合は、この型を選択します。
詳細: カスタムパラメーターの作成と設定。
代替フェッチ URL
TeamCity 2024.03 では、ビルドエージェントは、元の Git リポジトリをミラーリングする事前構成済みのリポジトリプロキシからソースを取得できるようになりました。この機能は、大規模な分散システムで特に役立ち、プライマリリポジトリから離れたエージェントの接続の問題を軽減します。
エージェント構成ファイルで定義されるフェッチ URL マッピングルールは、エージェントごとにチェックアウトプロセスをきめ細かく制御できます。さらに、リダイレクトルールでのワイルドカードと部分 URL のサポートにより、プロジェクトに依存しないユニバーサルなマッピングパターンを作成できます。
詳細: Git VCS ルート | 一般設定。
その他の変更点
ターミナルを開くボタンをクリックすると、チェックアウトディレクトリでターミナルが開きます。エージェントの概要ページから呼び出された場合、ターミナルは引き続き
$HOME
ディレクトリで開きます。新しいステータス発行者のコミット設定では、ビルドの完了時に TeamCity がスウォームレビューコメントを投稿するかどうかを選択できます。このオプションが無効になっている場合、ビルド機能はレビューのテストセクションのみを更新します。
複合ビルドのパラメーター | 統計値セクションに、以前のビルドを新たに実行するではなく再利用することでこのビルドで節約された時間を表示する追加のメトリックが含まれるようになりました。
アップグレードノート
アップグレードする前に、バージョン 2024.03 2023.11 との比較の重要な変更点について読むことを強くお勧めします。
解決された問題
実装された機能と修正された問題の概要については、TeamCity 2024.03 リリースノートの記事を参照してください。
ロードマップ
将来のアップデートについては、TeamCity ロードマップを参照してください。
フィードバックは重要です
皆様からのフィードバックを重視しており、ご意見やご提案を共有することをお勧めします。詳細については、リンクフィードバックを参照してください。
関連ページ:
TeamCity サーバーとエージェントのアップグレード
TeamCity は、以前のバージョンからそれ以降のバージョンへのアップグレードをサポートしています。アップグレードノートに記載がない限り、すべての設定とデータは保持されます。少なくともいくつかのバグ修正アップデートがリリースされた後、最新の TeamCity バージョンを実行するための定期的なアップグレードを計画することをお勧めします。このようにして、最新の修正とセキュリティパッチを適用した完全にサポートされたバージョンを実行します。セキュリティパッチ:TeamCity は、サーバー、ビルド...
HashiCorp ボールトの統合
HashiCorp Vault は、トークン、パスワード、証明書、暗号化キーを安全に保管するためのストレージです。TeamCity パラメーターとトークン内に機密情報を保存する代わりに、機密情報を Vault に保持し、Vault エンジン (KV/KV2、AWS、Google Cloud など) からこのデータに安全にアクセスできるように TeamCity を設定できます。共通情報:HashiCorp Vault との統合を設定するには、次のものが必要です。必要なプロジェクトの HashiCor...
プルリクエスト
プルリクエストビルド機能は、GitHub、Bitbucket サーバー、Bitbucket クラウド、GitLab、Azure DevOps、JetBrains Space リポジトリの pull (マージ) リクエストとの TeamCity 統合を強化します。共通情報:ビルド構成にプルリクエスト機能を追加すると、次のことが可能になります。ビルド構成の概要ページで、プルリクエストブランチと保留中の変更を表示します。ビルド結果ページの概要タブでプルリクエストの詳細を表示します。ドラフトプルリクエス...
信頼できないビルド
信頼できないビルドセクションでは、外部ユーザーが作成した悪意のあるコードが TeamCity で実行されるのを防ぐことを目的とした変更検証プロセスを設定できます。共通情報:VCS ルートが、外部ユーザーがプルリクエストを介して変更をコミットできる設定になっているパブリックリポジトリをターゲットにしている場合、新しい変更が検出されると VCS トリガーが自動的に新しいビルドを開始し、次のいずれかが当てはまる場合、TeamCity は悪意のあるコードを実行できます。プルリクエスト機能が有効になってお...
.NET
TeamCity には、.NET ビルドステップ、ビルドエージェントでの .NET 検出、リポジトリ内のビルドステップの自動検出を提供する .NET ツールチェーンの組み込みサポートが付属しています。このページでは、.NET ランナーの構成について詳しく説明します。チュートリアルとデモについては、このブログ投稿シリーズを参照してください。要件:.NET ランナーを使用するには、ビルドエージェントマシンに次のソフトウェアをインストールする必要があります。.NET CLI コマンド (クロスプラットフ...
dotCover
dotCover ランナーは、JetBrains dotCover を使用して .NET プロセスのカバレッジレポートを生成します。生成されたレポートは、ビルド結果ページのコードカバレッジタブに公開されます。このランナーは、複数の先行する .NET ステップの後に配置して、個々のコードカバレッジをマージし、統合レポートを公開することもできます。dotCover ステップ設定:このセクションでは、ランナー設定の使用方法について説明します。現在のタスクに応じてこれらの設定を組み合わせる方法の例については、...