TeamCity 2023.05 の新機能
ダークテーマ
このリリースサイクルでは、最も多くの賛成を得たリクエストの 1 つである TeamCity ダークテーマを実装しました。さらに、現在の OS 設定に応じてライトテーマまたはダークテーマのいずれかを自動的に適用する「システムテーマ」オプションを選択することもできます。
![TeamCity ダークテーマ TeamCity Dark Theme](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-TCDark.png)
インタラクティブエージェントターミナル
この更新により、TeamCity UI から直接リモートターミナルをエージェントマシンに開くことができるようになります。これらのターミナルを使用すると、プロジェクト管理者はローカルおよびクラウドのエージェントを保守し、問題のトラブルシューティングを行うことができます。
![エージェントターミナルウィンドウ Agent Terminal Window](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-openInteractiveTerminal.gif)
この新しいターミナルの導入に伴い、古い SSM ターミナルを開くアクションリンクをエージェントページから削除しました。
マルチノードセットアップの強化
ラウンドロビン
バージョン 2023.05 では、TeamCity ノード間で負荷をより効果的に分散し、計画されたメンテナンスや予期しないフェールオーバーによってノードがダウンしたときに悪影響を受けるユーザーの数を最小限に抑える新しいリクエスト分散ロジックが導入されています。
この新しいロジックは、UI アクションの処理とユーザーリクエストの負荷分散責任を持つランダムノードに新しいリクエストを送信することに基づいています。この最初の描画の後、TeamCity はどのノードが選択されたかを記憶し、後続のリクエストを同じノードに委譲します。
詳細: ラウンドロビン。
VCS ポーリング責任を複数のノードに割り当てる
バージョン 2023.05 より前では、「VCS リポジトリポーリング」責任 (ノードがリポジトリをポーリングして新しいコミットを確認し、変更を検出できるようにする) は、クラスター全体の 1 つのノードでのみ使用可能でした。このバージョン以降では、この責任を複数のノードに割り当てることができます。この機能強化により、ノード間で負荷を均等に分散し、新しいビルドをトリガーするまでの遅延を減らすことができます。
![マルチノード設定 Multinode Setup](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-multinode-overview.png)
現在のリクエストをどのノードが処理するかを指定するには (たとえば、新しいビルドをビルドキューに追加する場合)、TeamCity UI の右下隅にあるノードセレクターを使用します。現在選択されているノードは、ノード構成ページ上で星のアイコンでマークされます。
詳細: VCS リポジトリのポーリング。
メインノードの責任を無効にする
以前は、TeamCity クラスターにそのような責任を持つノードがない場合、メインの TeamCity ノードは、「ビルドの実行によって生成されたデータの処理」、「VCS リポジトリのポーリング」、および「ビルドトリガーの処理」の責任を自動的に再取得していました。さらに、「メインの TeamCity ノード」の責任を別のノードに切り替えると、この新しいノードは他のすべての責任を自動的に継承しました。
バージョン 2023.05 以降、メインノードは「不足している」責任を自動的に受け入れません。この変更により、メインノードをより細かく制御できるようになり、負荷と CPU/ メモリの消費量を削減できます。TeamCity UI で無効にできないメインノードの責任は、「メイン TeamCity ノード」(この責任を別のノードで有効にすることによってのみ、このチェックボックスをオフにできます) と「UI アクションの処理とユーザー要求の負荷分散」のみです。
任意のノードから TeamCity バックアップとクリーンアップを起動
UI アクションの処理とユーザーリクエストの負荷分散責任を持つ任意のノードでバックアップを作成できるようになりました。
この責任を持つ任意のノードからクリーンアップをスケジュールすることもできるようになりました。ただし、クリーンアップは常にメインノードで実行されます。このタスクは、セカンダリノードが通常のタスクを実行している間に実行できます。
VCS 統合の機能強化
GitHub アプリ経由で GitHub に接続する
このリリース以降、TeamCity は、GitHub アプリ(英語)を利用した接続を介して、GitHub および GitHub Enterprise インスタンスと連携できます。GitHub アプリは、個人および組織のリポジトリへのアクセスを提供する優れた方法です。きめ細かい権限を誇り、アプリがアクセスできるリポジトリをより細かく制御でき、OAuth アクセストークンを生成するために専用の「サービス」ユーザーを維持する必要がありません。
![GitHub アプリ接続の作成 Create a GitHub App Connection](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-add-GHApp-connection.png)
GitHub アプリ接続を使用すると、GitHub.com および GitHub Enterprise リポジトリをチェックアウトし、GitHub がリポジトリの変更について TeamCity に通知するために使用する Webhook を設定し、関連する認証モジュールを有効にすることができます。
詳細: 接続を構成。
GitHub のドラフトプルリクエストを無視する
このバージョン以降、ビルド機能設定で下書きを無視ボックスをオンにすることで、GitHub ドラフトプルリクエスト(英語)を無視するようにプルリクエストビルド機能を構成できます。TeamCity はステータスが変わるまでドラフトプルリクエストを無視します。
デフォルトでは、プルリクエストビルド機能は GitHub ドラフトプルリクエスト情報を読み込み、ドラフトプルリクエストに対してビルドを実行します。ビルドページには、プルリクエスト番号の横に「ドラフト」ステータスとグレー表示のアイコンが表示されます。
![PR 案 Draft PR](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-pullrequests-Draft1.png)
GitHub でドラフトプルリクエストのステータスが「レビュー準備完了」に変更されると、ビルドページにその変更が反映されます。
![レビューの準備完了 PR Ready for review PR](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-pullrequests-Draft2.png)
VCS ルートのリフレッシュ可能なトークンを再発行する
VCS ルートが TeamCity 接続を介して、Bitbucket サーバー、Bitbucket クラウド、または GitLab でホストされている Git リポジトリにアクセスするように構成されている場合、このルートの設定の「認証設定」セクションに新規取得ボタンが表示されるようになりました。このボタンを使用すると、VCS ルートが使用するリフレッシュ可能なトークンを、現在のユーザーに発行された新しいトークンに即座に置き換えることができます。
![トークンの再発行 Reissue Token](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-refreshableGitToken.png)
有効期間の短いリフレッシュ可能なトークンは、TeamCity サーバーが関連データをエージェントと共有せずに自動的にリフレッシュするため、パスワードや個人アクセストークンと比較してセキュリティが強化されます。
詳細: リフレッシュ可能なトークン。
Bitbucket サーバーおよびデータセンターとの統合
Bitbucket クラウドに加えて、TeamCity は Bitbucket サーバーとデータセンターをサポートするようになりました。対応するオプションは、接続タイプのリストおよびプロジェクトの作成ページで利用できます。
![TeamCity と Bitbucket サーバーおよびデータセンターの統合 TeamCity integration with Bitbucket Server and Data Center](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-whatsnew202303-bbserver.png)
詳細: 接続を構成 | プロジェクトの作成と編集
ポッドマンのサポート
バージョン 2023.05 以降では、Docker(英語) の代わりに Podman(英語) を使用して、イメージレジストリに接続し、コンテナー内でビルドステップを実行し、( コマンドラインランナー経由で) イメージをプッシュ / プルすることができます。
![TeamCity 2023.05 でのポッドマンのサポート Podman support in TeamCity 2023.05](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-podman-wn.png)
コンテナーラッパー拡張機能 (以前は「Docker ラッパー」と呼ばれていました) は、ビルドエージェントにインストールされているコンテナーマネージャーに応じて、
docker pull
またはpodman pull
のいずれかを介してイメージをプルするようになりました。Docker サポートビルド機能は、Podman を使用してコンテナーレジストリにログインできるようになりました。
コマンドラインランナーを使用して
podman ...
コマンドを実行する場合は、新しいcontainer.engine
、podman.version
、podman.osType
パラメーターを利用してエージェント要件を指定し、Podman がインストールされているビルドエージェント上でのみビルドが実行されるようにします。
HTTPS アクセスの強化
Let's Encrypt 経由で HTTPS 証明書を取得する
暗号化しましょう(英語)は、最新のすべてのブラウザーによって信頼される TLS 証明書を提供する非営利の認証局 (CA) です。バージョン 2020.05 以降、TeamCity はこの CA に接続して、有効な証明書を自動的に発行および設定できます。
![Lets Encrypt 経由で証明書を取得する Obtain certificate via Lets Encrypt](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-https-letsencrypt.png)
Let's Encrypt によって発行された証明書は有効期限の 30 日前に自動的に更新され、TeamCity サーバードメインと、構成されている場合はアーティファクト分離ドメインの両方が対象になります。
詳細: HTTPS サーバー設定。
HTTPS 接続に必要な暗号化プロトコルを指定する
TeamCity サーバーが HTTPS 経由のアクセスを許可している場合、クライアントと通信するためのサーバーのデフォルトプロトコルは現在 TLS バージョン 1.2 です。バージョン 2023.05 以降では、使用可能な暗号化プロトコルのリストを指定したり、TeamCity に 1 つの特定のプロトコルを使用させることができます。
![TLS 1.3 プロトコルを使用する TeamCity TeamCity using the TLS 1.3 Protocol](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-tls-protocols.png)
詳細: 使用可能な暗号化プロトコルの指定。
新しいサービスメッセージ
サービスメッセージ経由で Slack メッセージとメールを送信する
TeamCity サービスメッセージを使用すると、ビルドスクリプトに特別なメッセージを追加することで、ビルドに関するさまざまな情報をレポートできます。利用可能なサービスメッセージのリストには、メール、Slack ダイレクトメッセージを送信し、Slack チャネルに更新を投稿する ##teamcity[notification ...]
メッセージが含まれるようになりました。
![Slack およびメールボックス内のカスタム TeamCity メッセージ Custom TeamCity messages in Slack and Email boxes](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-serviceMessages-whatsNew.png)
組み込みのセキュリティ機能により、メッセージが間違った受信者に送信されることがなくなり、信頼できるものとして構成されていない外部 Web リソースへのリンクを含めることができなくなります。
詳細: Slack メッセージ | メール。
サービスメッセージを介したビルドタグの追加と削除
TeamCity サービスメッセージを送信して、ビルドタグを追加および削除できるようになりました。
![ビルドに OS 名をタグ付けする Tagging builds with OS names](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-servicemessage-tags.png)
タグを追加または削除するには、次のメッセージを送信します。
詳細: サービスメッセージ。
AWS 関連のアップデート
EC2 インスタンスメタデータサービス v2 のサポート
IMDSv2 は、Amazon EC2 インスタンスメタデータサービスの多数の IMDSv1 脆弱性に対処する(英語)の新しいバージョンです。
TeamCity 2023.05 は、EC2 インスタンスと Amazon マシンイメージ (AMI) を、「オプション」と「必須」の両方の IMDSv2 設定でサポートします。TeamCity は常に最初に IMDSv2 の使用を試行しますが、古い AMI もサポートします。
EC2 起動テンプレートのカスタマイズ
このバージョンから、TeamCity では Amazon EC2 起動テンプレートをカスタマイズできるようになりました。同じ起動テンプレートを使用して、一部のパラメーターのみが異なるさまざまなインスタンスを実行できるようになりました。起動テンプレートのカスタマイズボックスをオンにし、必要に応じて起動テンプレートの値を変更します。
![AWS EC2 の起動テンプレートをカスタマイズする Customize Launch Templates for AWS EC2](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-whatsnew-CustomizeLaunchTemplates.png)
2 要素認証の強化
重要な設定の追加検証
バージョン 2023.05 以降、2 要素認証に合格したユーザーは、2FA の無効化、ユーザーのパスワードやメールの変更、アクセストークンの生成などのセキュリティ関連のアクションを実行する時間が 1 時間与えられます。この期間が終了すると、ユーザーはこれらのアクションを続行する前に、自分の ID を再確認し、新しい 2FA 検証に合格する必要があります。
この新しい動作により、TeamCity サーバーの保護層が追加されます。
詳細: 重要な設定の保護。
特定のユーザーグループに 2FA を強制する
グローバル 2 要素認証モードが「オプション」の場合、個々のユーザーグループに 2FA の使用を強制できるようになりました。これを行うには、teamcity.2fa.mandatoryUserGroupKey
内部プロパティを追加し、その値を必要なグループキーに設定します。
REST API の更新
SSH キーの管理
バージョン 2023.05 以降では、プロジェクトの SSH キーに対するあらゆる操作を REST API 経由で実行できます。つまり、新しいキーのアップロードと生成、VCS 認証設定の変更、暗号化キーのパスフレーズの設定、アップロードされたキーの参照と削除です。これを行うには、必要なリクエストを /app/rest/projects/<project_locator>/sshKeys
エンドポイントに送信します。
詳細: SSH 鍵管理。
バージョン管理された設定の管理
REST API を使用して、VCS へのプロジェクト設定の保存に関連する設定を管理できるようになりました。この新しい API を使用して、これらの設定を変更し、変更を確認し、関連する VCS との間で変更をロード / コミットできます。/app/rest/projects/{locator}/versionedSettings/
エンドポイントを調べて、利用可能なリクエストを表示します。
詳細: VCS 設定の管理。
ユーザーロールの管理
新しい /app/rest/roles
エンドポイントを使用すると、既存のロールを取得、変更、削除できるだけでなく、新しいロールを作成することもできます。
詳細: ロールと権限の管理。
サーバー認証設定の管理
GET
および PUT
リクエストを /app/rest/server/authSettings
エンドポイントに送信して、サーバー認証設定を管理できるようになりました。
詳細: サーバー認証設定の管理。
.NET 8 のサポート
TeamCity 2023.05 は、Microsoft による .NET 8.0(英語) フレームワークをサポートするようになりました。これは、TeamCity エージェントがエージェントマシンにインストールされている対応する SDK を正しく認識し、.NET ビルドランナーが .NET 8.0 を対象とするプロジェクトを正常にビルドできることを意味します。
Sakura UI の改善点
ビルド構成の「チェーン」タブ
ビルド構成ページに「チェーン」タブが表示されるようになりました。このページでは、ビルドチェーンにリンクされたビルドの Sankey のようなダイアグラムを参照できます。
![Sakura でチェーンを構築する Build Chains in Sakura](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-sakura-chains.png)
以前は、このページはクラシック UI でのみ利用可能でした。
ビルドの並べ替え
Sakura UI 内の目的の位置にビルドをドラッグすることで、ビルドキュー内のビルドを手動で並べ替えることができるようになりました。
変更の可視性の向上
変更ログタブがプロジェクトとビルド構成で使用できるようになりました。
グラフの表示オプションは、変更に関連するすべてのページとタブに実装されます。このオプションを有効にすると、変更は関連する VCS ルートへのコミットのグラフとして表示されます。
![変更グラフを含む「変更ログ」タブ Change Log tab with changes graph](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-sakura-changelog.png)
ビルド結果ページの「パラメーター」タブを更新
ビルド結果ページのパラメータータブをオーバーホールしました。検索ボックスを使用して必要なパラメーターを検索したり、カスタムビルド中に追加 / 変更されたパラメーターのみを表示したり、依存ビルドによって報告されたパラメーターを非表示にしたりできるようになりました。
詳細: パラメータータブ。
失敗したビルドに対してのみステップを実行する
個々のステップに対して「ビルドステータスが失敗した場合のみ」実行ポリシーを選択できるようになりました。このポリシーを使用すると、ビルドが正常に完了した場合は無視され、失敗した場合にのみ実行されるステップを作成できます。
![ビルドが失敗した場合にのみビルドステップを実行する Run the build step only when the build fails](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-whatsnew2303-onlywhenfails.png)
Kotlin DSL: カスタムメトリクスに基づいて失敗条件を構築する
Kotlin DSL を使用して、ビルドによって報告されるカスタム統計値にビルド失敗条件を構成できるようになりました。このために main-config.xml ファイルを編集する必要はありません。つまり、カスタムメトリクスでのビルド失敗条件の構成にシステム管理者権限は必要なくなります。
Kotlin DSL コードのサンプルは次のとおりです。
DSL 経由で追加されたカスタムメトリクスでのビルド失敗条件の Web UI 表現の改善に取り組んでいます。
サーバーの状態
アーカイブされたプロジェクトの健全性レポート
アーカイブされたプロジェクトに対してサーバー健全性レポートを生成できるようになりました。これを行うには、<Archived Projects> スコープを選択します。
![アーカイブされたプロジェクトのサーバー健全性レポート Server Health Reports for Archived Projects](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-serverHealthArhived.png)
サーバーのステータスを確認するための新しいエンドポイント
GET リクエストを送信して現在のサーバーのステータスを取得することで確認できる 2 つの新しいエンドポイントが追加されました。
サーバーがまだ初期化中またはメンテナンスモードであっても、サーバーが実行中の場合は
<server_URL>/healthCheck/healthy
エンドポイントは「200」を返します。サーバーが完全に初期化され、ユーザー要求を受け入れる準備ができている場合、
<server_URL>/healthCheck/ready
エンドポイントは「200」を返します。サーバーがまだ初期化中であるか、データのアップグレードを待機している場合、エンドポイントは「503」を返します。
その他
通知ビルド機能では、複数の受信者アドレスを入力できるようになりました。
事前定義された環境変数のリストに
env.BUILD_URL
を追加しました。この変数は、現在のビルドへのリンクを返します。SSH キーページに、新しいキーを生成できるボタンが表示されます。TeamCity サーバーでキーを生成すると、(
ssh-keygen
をローカルで実行して手動でキーをアップロードする場合と比較して) 高速かつ安全になります。ステータス発行者のコミットおよびプルリクエストビルド機能に関連する情報を含む新しい
teamcity-commit-status.log
およびteamcity-pull-requests.log
ログファイルが追加されました。各ログには、TeamCity が DEBUG レベルのイベントを書き込むことができるようにする対応するプリセットがあります。TeamCity エンタープライズユーザーは、「ヘルプ | サポート」をクリックして、teamcity-support.jetbrains.com(英語) の新しいリクエストフォームにすぐに移動できるようになりました。
アップグレードノート
アップグレードする前に、バージョン 2023.05 2022.10.x との比較の重要な変更点について読むことを強くお勧めします。
解決された問題
TeamCity 2023.05 リリースノートを参照してください。
ロードマップ
将来のアップデートについては、TeamCity ロードマップを参照してください。
あなたからの御一報をお待ちしています
皆様からのフィードバックを重視しており、ご意見やご提案を共有することをお勧めします。詳細については、リンクフィードバックを参照してください。
関連ページ:
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-agentTerminal-2023-11.png)
TeamCity エージェントをインストールして開始する
TeamCity ビルドエージェントは、TeamCity サーバーからのコマンドをリッスンし、実際のビルドプロセスを開始するソフトウェアです。実稼働 TeamCity セットアップでは、専用マシンに追加のビルドエージェントをインストールする必要があります。その前に、エージェントとサーバー間の通信、システム要件、競合するソフトウェア、およびセキュリティに関する注意事項を必ず参照してください。Tomcat サーブレットコンテナーにバンドルされている TeamCity をインストールする場合、または W...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/multinode-setup-2022.png)
高可用性のためのマルチノードセットアップ
TeamCity サーバーは、高可用性と柔軟な負荷分散のために複数のノード (またはサーバー) を使用するように構成できます。TeamCity ノードのクラスターをセットアップすることが可能です。各ノードは、ビルドからのデータの処理や VCS リポジトリからの変更の収集など、さまざまなタスクを担当します。または、すべての作業を行うメインノードを 1 つと、読み取り専用インターフェースを提供するセカンダリノードを 1 つ保持します。メインノードがダウンした場合、最小限のダウンタイムですべてのデータ...
![](https://pleiades.io/icons/teamcity.png)
TeamCity Web UI からバックアップを作成する
TeamCity では、Web UI を介して TeamCity データのバックアップを作成できます。バックアップファイルを作成するには、管理 | バックアップページに移動し、以下の説明に従ってバックアップパラメーターを指定し、バックアッププロセスを開始します。バックアップ設定:バックアップファイルバックアップファイルの名前を指定すると、拡張子が自動的に追加されます。デフォルトでは、TeamCity はバックアップファイルをディレクトリに保存します。セキュリティ上の理由から、UI でこのパスを...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-bbconnection-createConnection.png)
接続を構成
TeamCity を使用すると、外部サービスへの接続のプリセットを保存できます。これらのプリセットは、プロジェクトの作成、通知の構成、課題追跡システムとの統合など、サーバー上のさまざまな場所で再利用できます。この記事では、各タイプの接続を追加する方法について説明します。接続を追加するには、ターゲットプロジェクトの設定に移動し、接続ページを開いて、接続の追加をクリックします。接続タイプを選択し、表示名を設定して他と区別し、以下のように設定します。作成すると、現在のプロジェクトのネストされたすべての...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/pr-info.png)
プルリクエスト
プルリクエストビルド機能は、GitHub、Bitbucket サーバー、Bitbucket クラウド、GitLab、Azure DevOps、JetBrains Space リポジトリの pull (マージ) リクエストとの TeamCity 統合を強化します。共通情報:ビルド構成にプルリクエスト機能を追加すると、次のことが可能になります。ビルド構成の概要ページで、プルリクエストブランチと保留中の変更を表示します。ビルド結果ページの概要タブでプルリクエストの詳細を表示します。ドラフトプルリクエス...
![](https://resources.jetbrains.com/help/img/teamcity/2024.07/dk-refreshableGitToken.png)
Git
TeamCity は、そのまま Git をサポートします。Azure DevOps Services を使用した Git ソース管理がサポートされています(以下の認証に関する注意事項を参照)。このページには、VCS ルート設定の Git 固有のフィールドの説明が含まれています。一般的な VCS ルートプロパティについては、このセクションを参照してください。注意事項: リモート実行とテスト済みのコミットは IntelliJ IDEA プラグインでサポートされています。Visual Studio アドイン...