TeamCity2019.2の新機能

TeamCity 2019.2では新しいビルドのクリーンアップ管理やサーバーのパフォーマンスを監視するための優れた方法を提供します。 このバージョンはEC2の起動テンプレートをサポートし、ビルドチェーン定義用の新しいDSL構文を採用しています。 また、Gitパッチを使用して個人用ビルドを実行する簡単な方法を提供し、実験的なUIに多くの改善を加えています。

クリーンアップの強化

TeamCity 2019.2では、ビルドによって生成される履歴データとアーティファクトを管理するための新しい方法が実装されています。 また、クリーンアップエンジンが改良され、さまざまなクリーンアップポリシーを設定できるようになりました。例えば、特定ブランチや特定タグのビルドをすべて残すことができます。

この新しいクリーンアップルールは、特に多数のプロジェクトを抱える企業や開発でフィーチャーブランチを使用しているチームに役立つと思います。

TeamCityの消去ルール

CI環境の俯瞰

プロはミッションクリティカルなシステムの動作とパフォーマンスの監視に役立つツールを愛用しています。 2019.2よりTeamCityはHTTPエンドポイントを介してメトリクスを公開するようになりました。これにより、Prometheusによりメトリクスをスクレイピングし、それをPrometheusのウェブインターフェースやGrafanaのダッシュボードで視覚化することができます。

このようなメトリクスにはサーバーのパフォーマンス情報のほか、エージェント、プロジェクト、ビルド構成に関するさまざまな詳細情報があります。

Prometheus形式のTeamCityメトリクス

さらなる拡張性の向上

多くの大企業にとって、高性能なCIは自社のワークフローにとって必要不可欠なものです。 TeamCityのマルチノード環境におけるセットアップがさらに進化しました。ビルドキューへのビルドの追加、ビルドの問題や調査の管理、その他ユーザーレベルのアクションをセカンダリサーバで実行できるようにしました。

実験的UIによるさらなる生産性の向上

多くの場合、開発者は一日に何度もTeamCityを開きます。そのため、当社はプロジェクトの規模や複雑さによらず、TeamCityを開発者が必要なものを素早く見つけられるような場所にしたいと考えています。 このバージョンではTeamCity UIのロードマップに従い、ビルド履歴の参照、問題の調査、設定ミスやビルドチェーン内のボトルネックの検出などを簡単に行える方法を提供する新しいビルドページを導入しています。

実験的UIをお試しください。その新しい外観には自信があります。

実験的UIの新しいビルドページ

EC2の起動テンプレートに対応。 新たなレベルに到達したビルド

当社はお客様が今日のワークフローで必要とするものすべてを実装したいと考えています。 バージョン2019.2では新たにEC2の起動テンプレート(launch template)に対応し、ご自身のAWSアカウントから起動パラメータを使用してクラウドビルドエージェントを実行できるようになりました。 起動テンプレートを使用すれば、ビルドエージェントでの新しいソフトウェアのアップデートやインストールが非常に単純明快になります。もうTeamCityプロジェクトの構成を変更する必要はありません。

EC2起動テンプレートのサポート

DSLのレベルアップ

ビルドチェーンを簡単にビルド

クリックに別れを告げ、スクリプトを迎えましょう。 Kotlin DSLがビルドチェーンを定義するための非常に単純明快な構文を提供するようになりました。 連続ビルドや並行ビルドのセットアップ、失敗条件や依存物の設定などをすべてコードで保存することができます。

多数のパラメータを 1つのテンプレートに定義できます。

プロジェクトの構成がより簡単になりました。 バージョン2019.2以降は、Kotlin DSLの構成にカスタムパラメータが含まれる場合があります。このパラメータはUIでプロジェクトをインポートする際に後から定義できます。

より多くの実行を、 少ない待ち時間で。 Gitパッチを使ってビルドを開始できます。

Gitパッチを作成し、それをTeamCityにアップロードして個人用ビルドを実行すれば、ブランチの作成やコミットを行うことなく変更内容を素早くテストできます。

バージョン2019.2での完全な変更点の一覧については、TeamCityのドキュメントをご覧ください。

2019.1の新機能

新しい外観とクリック数の削減

TeamCityのUIを大幅に見直しています。また、このバージョンで初めて導入された機能を以下にご紹介いたします。

外観が改善されただけでなく、基盤となるテクノロジスタックも更新されたため、UIが単一ページのアプリケーションとして機能するようになりました。これによって、各種機能へのアクセスが高速化され、すべての変更が即座に表示されるようになりました。 TeamCity UIロードマップを参照し、計画中の変更をすべて把握できます。

2019.1では、プロジェクトとビルド構成の作業に関連するページをターゲットにしています。

プロジェクト概要

新しいプロジェクト概要では、ビルド構成をダッシュ​​ボード形式で確認できます。 各設定には、最新14個までのビルドのヒストグラムが表示される独自のカードが割り当てられています。 各ビルドについて、ステータス(緑は成功、赤は失敗)、ビルド時間、およびビルドがキューで費やした時間を確認できます。 現在実行中のビルドに関する情報も確認できます。

Branchesタブ

改良されたBranchesタブでは、デフォルトのブランチが一番上に表示され、残りのブランチは下部の展開可能なブロックに隠されています。 デフォルトブランチの最新ビルドの詳細がすぐに表示されるようになり、重要なデータの可視性が向上しました。

サイドバー

初期状態でGitLabをフルサポート

GitLab

GitLabをご使用ですか? TeamCity 2019.1はGitLabをフルサポートしています。 リストからGitLabプロジェクトを選択するだけで、GitLabのOAuth接続を設定し、ワンクリックでTeamCity内にプロジェクトを作成できます。

また、新たにGitLabのマージリクエストもサポートしたため、各マージリクエストに対して自動的にビルドを実行し、ビルドが成功した場合にそれを自動マージするようにTeamCityを設定することができます。

Go言語のサポート

GoLand

TeamCityでGo言語がネイティブにサポートされるようになりました。 Goプロジェクトを追加すると、TeamCityはGoテストを検出して報告し、テストステータス、ビルド間の履歴、時間についての詳細な分析データを提供し、不安定なテストをflaky(同じ構成、コードに対して合否が変わる)としてマークします。 Test History(テスト履歴)タブを使用して、Goテストをさらに深く掘り下げることができるようになりました。

トークンベース認証

基本的なHTTP認証に加えて、TeamCityは永続的なアクセストークンに基づく認証をサポートするようになりました。 ユーザーのログイン名とパスワードをスクリプトに埋め込む必要がないため、トークンはREST API認証に役立ちます。

トークンベース認証

ソースを同期しないスナップショット依存関係

スナップショットの依存関係に対して、コードの修正を同期しないように設定できるようになりました。 これはデプロイを実行する際に便利で、チェーン内の古いビルドの1つを最新のデプロイ構成を使用して昇格できるようになります。

AWSスポットフリートのリクエスト

このより柔軟なスポットインスタンスの作成方法を使って、スポットフリートをよりきめ細かく制御できるようになりました。 TeamCity 2019.1では、スポットフリート設定ファイルの送信と編集、戦略の指定、目標容量の設定、インスタンスのタグ付けを行えます。 これは、より高度で費用対効果の高いAWS上でのビルド実行方法です。

セカンダリノードでのビルドライフサイクルの処理

セカンダリノードにビルドライフサイクルの処理という新たな役割が追加されました。 対応する設定をオンにすると、セカンダリノードはビルドの実行と終了、アーティファクトのアップロード、失敗条件の処理など、ビルド関連のタスクを処理します。 この変更により、変更の収集・読み取り専用バックアップノードとしての機能・ビルドライフサイクルの処理など、メインサーバーからセカンダリサーバーにオフロード可能な大量の既存タスクの一覧が拡張されました。

ビルドライフサイクルの処理
ビルドライフサイクルの処理

ツールのオンデマンド読み込み

ツールはオンデマンドでのみ、エージェントに読み込まれるようになりました。 必要なツール類は、それらを必要とする最初のビルドが出現した場合にのみ読み込まれます。 これにより、ビルドエージェントのアップグレード時間が大幅に短縮され、ネットワークトラフィックが削減されます。

このリリースにはさらに多くの新機能があります!  その他の新機能をご確認ください。

2018.2の新機能

セカンダリTeamCityノードによるスケーラビリティの向上

セカンダリTeamCityノードは、バージョン管理システムから変更を収集してチェックするタスクを引き継ぐことによって、メインTeamCityサーバーの負荷を下げるように設計されています。 したがって、VCS変更の収集をセカンダリノードにアウトソースすることで、インストール全体のスケーラビリティを向上させています。 また、セカンダリノードを使って高可用性設定を行うこともできます。

もう一度再生
もう一度再生
  • ポーリング
  • コミットフック

GitHubプルリクエストのビルド

TeamCityはサポートを拡張し、GitHubプルリクエストに対応するようになりました。 プルリクエストを作成者別にフィルタリングし、内部または外部の共同作業者に限定したり、全員に公開したりできます。 ターゲットブランチでプルリクエストをフィルタリングするオプションもあります。

プラグインの操作性を改善

プラグインリポジトリからインストール

TeamCityのプラグインをJetBrainsプラグインリポジトリから直接閲覧してインストールできるようになりました。

サーバーの再起動は不要

プラグインリポジトリからプラグインをインストールすると、それを適用するためにTeamCityサーバを再起動する必要はなくなりました。

手間のかからないプラグイン開発

同様に、TeamCity用のプラグインを開発する場合、サーバーを再起動する必要がなくなりました。

テスト結果にスクリーンショットを追加

TeamCity 2018.2では、スクリーンショットや、リンク、アーティファクト、ログ、数値などの他のテストデータをテスト結果に追加できるようになりました。 これらは、UIのテスト詳細セクションに、ネイティブで表示されます。

Kotlin DSLのプレビュー設定

Kotlin DSL形式の設定をどのように記述するのが最適なのかお分かりになりませんか? TeamCityはすべての設定用のDSLコードを自動的に生成し、それを管理UIでプレビューできるようになりました。 楽にDSLフォーマットを学習したり、単にDSLの一部をコピーして、既存の settings.ktsファイルに挿入できます。

調査の自動的な割り当て

TeamCityでは、ヒューリスティックの数に基づいてチームメンバーに調査をサジェスト、または自動的に割り当てることができるようになりました。 そうすれば、ビルドを壊した可能性が最も高い人は、通知を受けて失敗を調査できます。

複数のNuGetフィード

TeamCity 2018.2では、プロジェクトとそのすべてのサブプロジェクトのビルドで使用される複数のNuGetフィードを指定できます。 また、NuGet Server API v3のサポートも導入されています。

2018.1の新機能

TeamCity Professionalは無料です

最大100個のビルド構成と3つの同時ビルドに対応しています。 ユーザー数や時間に制限はありません。 フル機能を提供しています。

新Kotlin DSLをご歓迎ください

Kotlin DSLが大幅に手直しされて改善し、より簡単に使えるようになり、ポータビリティが改善し、たった1つのファイルから簡単にプロジェクトを作成できるようになりました。

シンプル

DSLの書式が簡略化されました。 TeamCityはuuidとプロジェクトIDを要求しなくなりました。これによってコードがより簡略化され、可読性が向上しています。 例えば、TeamCityで基本的な「Hello world!」プロジェクトに必要なコードはこれだけです:

すべてが1箇所に

1つの .teamcity/settings.ktsファイルのみで、プロジェクト設定を記述できるようになりました。

高い移植性

Kotlin DSLスクリプトがサーバーやプロジェクトから切り離されたため、異なるサーバー間や同一サーバー内のプロジェクト間で同じスクリプトを共有できるようになりました。 このスクリプトをリポジトリにチェックインするだけで共有できます。

URLから作成

TeamCityでプロジェクトを作成する際に.teamcity/settings.ktsファイルのあるリポジトリを指定すると、TeamCityがコードの記述内容に従って必要なすべての設定やビルド構成を使ってプロジェクトを自動的に作成します。

Kotlin DSLの詳細

高可用性

新しい読み取り専用サーバーモードを使用して、高可用性のTeamCityインストールを素早く行えます。 読み取り専用サーバーはデータベースとデータディレクトリにアクセスし、メインサーバーが利用できなくなった場合は、すべてのリクエストを受け入れ、ビルド、アーティファクトなどへの読み取りアクセスを許可します。 シームレスにサーバーをアップグレードする際や予期しないダウンタイムが発生した際に便利です。

IDEプラグイン
ユーザー
ビルドエージェント
プロキシ
TCメインサーバー
TCメインサーバー
TC読み取り専用サーバー
TC読み取り専用サーバー
データベース
NASデータディレクトリ
  • メインサーバー稼働中
  • メインサーバー停止中

改良されたDockerサポート

Dockerのサポートが大幅に改善されました。

Dockerラッパーが、.NET CLIとPowerShellランナーをサポートするようになりました。

ビルドプッシュ、およびその他のDockerコマンドは、古いDockerビルドランナーに取って代わった、新しいDockerランナーで直接利用できるようになりました。

Amazon S3アーティファクトストレージをバンドル

TeamCity 2018.1はAmazon S3のサポートを組み込みでご提供しております。 S3からのアーティファクトの保存、アップロード、ダウンロード、および削除は、ネイティブ統合され、TeamCity UIで行えるようになりました。 この統合により、依存関係とクリーンアップが処理されるるようになり、S3が内部的に機能していることを知る必要さえなくなりました。