TeamCity のロードマップ

このページには、現在私たちが実際に開発または設計している TeamCity の新機能のリストを掲載しています。 このリストから、来年に予想されるアナウンスを先行して確認することができます。

このページの情報は定期的に更新されています。 ロードマップ上の機能の最新ステータス:

9
開発中
5
設計中
2
調査中
3
EAP で利用可能
TeamCity Cloud

TeamCity Cloud

開発者がビルドインフラストラクチャのインストールとメンテナンスに苦労することなく優れたソフトウェアを制作できるようにするため、JetBrains が全面的に運用と管理を行うフルマネージド型の CI/CD ソリューションである TeamCity Cloud を開発中です。

詳細情報

マルチサーバーの拡張性

マルチサーバーの拡張性

複数の TeamCity サーバーを連携させると、CI/CD のパフォーマンスと信頼性をまったく新しいレベルに高めることができます。 セカンダリサーバーの能力を拡張することで、クラスター環境における TeamCity の動作を改善しています。

詳細情報

重要な CI 関連の改善

重要な CI 関連の改善

CI をより細かく制御できるよう、DevOps パイプラインを簡単に自動化し、開発プロセスをより効率よく体系化するのにも役立つさまざまな新機能を開発中です。

詳細情報

Kotlin DSL

Configuration as code (コードとして構成を記述)

ますます多くのユーザーが CI/CD 構成をコードとして保管するようになってきています。 近い将来に Kotlin DSL の表現力をさらに高め、より多くの方法で共有できるようにする予定です。

詳細情報

ビルドランナーと統合

ビルドランナーと統合

TeamCity のビルドツールや外部ツールとの緊密な統合機能は世界中の開発者様に好評を博しているため、当社は同機能を最大限にサポートできるよう細心の注意を払っています。 このセクションでは、今後追加予定の新しい統合機能について掲載しています。

詳細情報

クラウド関連の機能

クラウド関連の機能

当社はお客様が今日のワークフローで必要とするものすべてを実装したいと考えています。 このため、クラウド環境でビルドをより簡単にセットアップして実行できるようにするさまざまな機能を現在開発中です。

詳細情報

新しい 'Sakura' UI

新しい “Sakura” UI

私たちは高速で使いやすい新たな UI を追究し続け、新機能をより早く提供するようにしています。 現在は Sakura UI が従来の UI の主なユースケースをすべてサポートできるようにすることに注力しています。

詳細情報

TeamCity Cloud

開発中

開発者は、ビルドインフラストラクチャのインストールとメンテナンスに苦労することなく優れたソフトウェアを制作できなければなりません。 このため、JetBrains が全面的に運用と管理を行うフルマネージド型の CI/CD ソリューションである TeamCity Cloud を開発中です。 この新製品には元の TeamCity でご愛用いただいているすべての機能が搭載され、ビルドやテストを他のユーザーから完全に切り離されたクラウド内の専用インスタンスで実行できるようになります。 現行ユーザーには、ローカルのインストール環境からクラウドソリューションに移行するための手段を提供する予定です。

TeamCity Cloud は現時点ではパブリックベータであり、一般リリースは 2020 年末までに予定されています。

ベータ版に登録する

マルチサーバーの拡張性

複数の TeamCity サーバーを連携させると、CI/CD のパフォーマンスと信頼性をまったく新しいレベルに高めることができます。 新機能によってセカンダリサーバーの能力を拡張することで、クラスター環境における TeamCity の動作を改善しています。

フル機能の UI

開発中
CI をより細かく制御できるよう、現在制限されているセカンダリサーバーの UI をフル機能版に置き換える予定です。これにより、ビルド構成の編集やクラウドエージェントの管理のほか、これまで使用できなかったその他のアクションも実行できるようになります。 その結果、プライマリサーバーがメンテナンス中もチームが TeamCity で作業を継続できるようになります。

ビルドキューの処理

設計中
私たちにとって何よりも重要な目標は、セカンダリサーバーをあらゆる点でプライマリサーバーと同等のものにすることです。 ロードマップの次の段階では、セカンダリサーバーがビルドキューを処理し、ビルドを開始できるようにすることを目指しています。

重要な CI 関連の改善

トリガー定義のパラメーター

開発中

私たちが実装を予定している需要の高い機能には、トリガー定義のパラメーターもあります。 この機能があればビルドとテストをより細かく制御できるようになり、それらをトリガー元に応じてさまざまな方法で実行できるようになります。 この機能の典型的なユースケースとしては、スケジュールによってトリガーされる(ただし、他のトリガーによって起動されない)ナイトリービルドの自動公開が挙げられます。

インテリジェントなテスト分割

設計中

テストの数が多くなるほど、それらを完了するのに要する時間は長くなります。 多くのビルドエージェントが何もせず、ある特定のエージェントがテストを完了するのを待っているだけの状態をよく見かけるかと思います。 この問題を解消するため、複数のテストをインテリジェントにほぼ同じ期間を持つ複数のテストグループに分割し、複数のビルドエージェントでそれらを並列実行する新機能を開発中です。 その結果、テスト結果をより早く取得し、ビル度数を増やしつつ待ち時間を短縮できるようになります。

エージェントレスビルド

開発中

TeamCity のビルドエージェントには他の CI にはない能力と汎用性が備わっています。 ただし、外部ツールを使用する場合は外部のジョブが完了するのを待つ必要があるため、その能力をすべて活かすことができません。 このような状況での TeamCity の動作方法を最適化するため、私たちは TeamCity のビルドエージェントに依存することなく外部ツールを使用できるようにする新しい「エージェントレスビルド」APIを実装したいと考えています。 この API を介して行われるすべてのジョブは独自のレポート、ステータス、履歴と共に TeamCity 内の一般的なビルドとして表示されるようになります。

この機能が非常に役立つ可能性がある良い例は、外部デプロイサービスを使用する場合だと思われます。 リリースのパイプラインで手動の承認手順を含むデプロイサービスを使用する場面を想像してください。 TeamCity エージェントからそのサービスを呼び出した場合、他の人がリリースを承認するのを待つだけで数時間どころか数日間も時間を要する可能性があります。 この処理にビルドエージェントが不要であれば、CI をはるかに効率的にセットアップできるでしょう! 新しい API はこのような状況を回避するのに役立ちます。

皆様のご意見を募集しています! 上述のエージェントレスビルドを自分ならどのように使用するのか、独自のユースケースを各々の YouTrack 課題に投稿してください。

1 つのビルド内での不安定なテストの解釈

EAP で利用可能

テストが不合格になったとしても、それは必ずしもコードが壊れていることを意味しているわけではありません。 テストが複数回の実行で 1 回以上合格しているのであれば、コードは往々にして正常に機能しています。 例えば、UI テストがネットワーク障害によって不合格になった場合でも 2 回目には合格する可能性があります。このような場合は、レンダリングの問題がなかったことを理由にテストを合格扱いにしたくなるかもしれません。

これまで TeamCity は不合格になったテストについては厳格なポリシーを採用してきました。それは、テストが不合格になると、ビルドステップも不合格になるといういうものです。 しかし、このポリシーは一部のテストシナリオでは不都合な場合がありました。 より多くのワークフローに対応するため、このような状況への対処方法を選択できるようにする予定です。その結果、同一ビルド内の一部のテストが不安定に見える場合でも、ビルドを合格扱いのままにできるようになります。

Configuration as code (コードとして構成を記述)

Kotlin DSL の表現力のおかげで、ユーザーが実際に CI/CD 構成をコードとして保管するようになってきています。 現在も継続してこの機能の改善に取り組んでいますが、ここでは近い将来に予定されている主な変更点をご紹介します。

プロジェクト構成を DSL として表示

開発中

View DSL ボタンを使用すると、ビルド構成を Kotlin のコードで記述する方法を優れた方法で学習することができます。 このボタンは現時点ではビルド構成のみを対象としており、プロジェクト全体の構成を記述したい場合や、ある特定の項目を構成するための正確なコードを求めている場合にはあまり役に立ちません。 今後は TeamCity の他のセクションにも同様のボタンを追加する予定です。そうすれば、常に適切な方法で VCS ルート、クリーンアップ設定、あるいはプロジェクト全体を Kotlin のコードとして構成できるようになります。

DSL コード内の import を省略

設計中

私たちは Kotlin DSL を可能な限り簡潔で表現力の高いものにしたいと考えています。 ビルド構成をさらに Kotlin で記述しやすくするため、settings.kts ファイルの冒頭で import セクションを省略できるようにする予定です。 その結果、settings.ktsproject {...} セクションから直接開始できるようになり、スクリプトのコンパイルに必要な import を明示的に指定する必要がなくなります。

UI による編集の無効化

開発中

TeamCity ではご希望のワークフローに基づいてさまざまな方法で CI/CD パイプラインをセットアップできます。 プロジェクトは DSL、UI、あるいはその両方を併用して構成できます。 ただし、手動変更と DSL 変更を併用した場合、多くの混乱やバージョン管理の問題が発生する可能性があります。 構成の予測可能性を維持したまま管理しやすくするため、管理者が Kotlin DSL を使用してセットアップを行っている場合に UI によるプロジェクト構成の編集を禁止するための新しいオプションを追加する予定です。

ビルドランナーと統合

TeamCity のビルドツールや外部ツールとの緊密な統合機能は世界中の開発者様に好評を博しているため、当社は同機能を最大限にサポートできるよう細心の注意を払っています。 今後追加予定の新機能を以下に掲載しています。

.NET 5

.NET 5

開発中

多くのユーザーが .NET Core と .NET Framework を統合する新しいプラットフォームである .NET 5 をリリースする Microsoft の計画に大きな関心を寄せています。 .NET 5 では異なるプラットフォーム向けの開発に差異がなくなりますので、TeamCity でも同じ方針を取る予定です。 まったく新しい .NET ビルドランナーに現在使用できる 5 種類のランナーがすべて統合され、あらゆる種類のアプリをすべてのランタイムオプションでビルドできるようになります。

今後数回のリリースで古いビルドランナーを削除する予定はありませんが、私たちは一般的に新機能やバグ修正を新しいビルドランナーにのみ実装することを目指しています。

Python

Python

開発中

Python は過去数年間で驚異的な成長を示しており、私たちも Python 向けの CI/CD ソリューションに多大な関心が寄せられていることを知っていました。 私たちは一般的な Python 向け開発およびテストフレームワークの大部分をサポートする新しい Python ランナーを実装し、CI ワークフローのあらゆる側面で一貫した使い心地を提供する予定です。

私たちはすでに何を Python 統合の対象に含めるべきかを大まかに考えていますが、各々の YouTrack 課題で自由にご自身の提案を投稿してください。

JetBrains Space

JetBrains Space

EAP で利用可能
設計中

当社は最近、新製品である Space を導入しました。この統合チーム環境は、現代のソフトウェア開発に対応したツール一式をまとめて提供するものです。 Space は、次のように TeamCity と統合するための多くの機会を提供しています。

  • プルリクエストのビルドとビルドステータスの公開
  • チャットへの通知の送信と TODO リスト項目の生成
  • チームディレクトリとの同期と Space からのプロジェクト権限の継承
  • その他多くの機能

現在、Space チームと緊密に連携して 2 つの製品を最も有効に統合する方法を模索しており、今年中に一部統合機能のリリースを開始する予定です。

Bitbucket Cloud

Bitbucket Cloud

調査中

私たちは現在、新たに Bitbucket Cloud のプルリクエストをサポートする方法を調査しています。 現時点ではどの程度まで Bitbucket Cloud と統合できるかは明確ではありませんが、次の内容を計画しています。

  1. 特定の単体リポジトリ(フォークではない)で作られたプルリクエストのサポートを実装する。
  2. 初期実装がユーザーのニーズに合致している場合はフィードバックを募集し、合致しない場合はさらなるシナリオを調査する。

各々の YouTrack 課題 でこの課題に投票できます。

クラウド関連の機能

クラウドエージェント用の永続キャッシュ

設計中

クラウド環境で TeamCity を使用中のチームには、ローカルのインストール環境を使用しているかのように迅速にビルドを完了できる機会が必要です。 永続的なクラウドのキャッシュがあれば、クラウドビルドエージェント間で迅速にソースコード、ビルドアーティファクト、およびさまざまなパッケージを転送できるようになり、時間とネットワークコストを大幅に削減することができます。

(ダウンロード数を削減すると、電力消費と二酸化炭素排出量が削減されるため、この惑星にとってもメリットがあります。 そのため、この機能によってビルドを高速化できるだけでなく、環境にも貢献することができます。)

新しいライセンスオプション

調査中

クラウド環境では必要に応じて配信パイプラインの容量をすばやく増加させることができるため、ますます多くのお客様がクラウド環境でビルドエージェントを実行したいと考えています。 しかし、現在の TeamCity のライセンスポリシーではピーク時のみ使用するビルドエージェントの年間ライセンスが要求されるため、制限があります。 この問題を解消するため、クラウドインストール環境での TeamCity ライセンスに対する取り組み方を再検討する予定です。

具体的な方法はまだ見つかっていませんが、このような方針で取り組んでいることをお伝えすることが重要であると思っています。 該当するユースケースがありましたら、各々の YouTrack 課題で自由に共有してください。

新しい “Sakura” UI

EAP で利用可能
開発中

CI/CD はほとんどの開発者が毎日利用しているツールの一つであり、私たちはその利便性を向上させたいと考えています。 昨年は新しい実験的な UI(コードネーム "Sakura")を導入しましたが、その非常に高い有効性が示されています。 この高速、強力、かつモダンな UI がこれほどの短期間で立ち位置を確保したことを誇りに思います。 Sakura UI の次の改善では、次の領域に対応する予定です。

  • ビルドキューページ
  • ヘッダー
  • ミュートおよび調査ページ

多くのユーザーから旧 UI を削除する予定があるかどうかについてお問い合わせをいただきました。

その答えはノーです。Sakura UI がすぐに従来の UI を置き換える予定はありません。 今後一年間は Sakura UI ですでに実装されている機能を集中的に改善し、従来の UI と同等の機能を持ち、その主なユースケースをすべてサポートできるようにする予定です。 その結果、Sakura UI をデフォルトにできるようになりますが、従来の UI を使用するオプションも残す予定です。

幸い、私たちには JetBrains 内の UI に対するすべての変更をテストする機会があります。 TeamCity のナイトリービルドは、個人開発者から IntelliJ IDEA や Kotlin などの大規模プロジェクトに至るまで、非常に多岐にわたる CI/CD の実践方法を持つ多数のチームによって使用されています。 従来の UI にはこのような機会がなく、会社と共に自然に成長し、今から 10 年以上前のテクノロジーを使用して構築されていました。 また、従来の UI はとうの昔に限界に達しており、私たちが十分に高速な新機能をリリースする妨げになっていると感じています。 そのため、私たちは Sakura UI を開発しており、TeamCity とすべてのユーザーに新しく明るい未来がもたらされることを心から信じています。