Team Foundation バージョン管理 (Azure DevOps)
Azure DevOps でホストされているプロジェクトは、次のいずれかのバージョン管理システムを使用できます。
Git — Linus Torvalds が最初に作成したオープンソースの分散バージョン管理システム。Azure DevOps で TeamCity を Git リポジトリに接続するには、Azure DevOps OAuth 接続を設定します。Git リポジトリを対象とするすべての VCS ルートに共通する機能の詳細については、この記事を参照してください: Git。
Team Foundation バージョン管理 (TFVC) — Azure DevOps 専用のバージョン管理システム。以前は Team Foundation Server (TFS) および Visual Studio Team System と呼ばれていました。TeamCity と TFVC リポジトリの通信は、Azure DevOps PAT 接続によって実行されます。
この記事では、TFVC リポジトリのみに焦点を当てます。
クロスプラットフォーム Azure DevOps 統合
TeamCity と Azure DevOps の統合は、Windows、Linux、macOS で動作します。TeamCity サーバーとビルドエージェントは、Team Foundation Servers 2012 以降および Azure DevOps Services とすぐに連携できます。
このタイプの VCS ルートには 2 つの動作モードがあります: デフォルトとクロスプラットフォーム。Azure サーバーにチームエクスプローラーが存在する場合、TeamCity はデフォルトモードを使用します。それ以外の場合は、クロスプラットフォームモードに切り替わります。
チームエクスプローラーのバージョンを検出すると、TeamCity は .NET GAC(英語) と次のパスを確認します。
Windows x86: %CommonProgramFiles%\Microsoft Shared\Azure DevOps Server\%version_number%Windows x64: %\CommonProgramFiles(x86)%\Microsoft Shared\Azure DevOps Server\%version_number%
クロスプラットフォームモードを適用するには、teamcity.tfs.mode=java 内部プロパティまたはビルド構成パラメーターを設定します。
設定
設定 | 説明 |
|---|---|
URL | 次の形式のサーバー URL:
|
ルート | 次の形式を使用してルートディレクトリを指定します: |
ユーザー名 | Azure DevOps サーバーにアクセスするユーザーを指定します。これはユーザー名または Azure DevOps が TeamCity サーバー (またはエージェント側のチェックアウトの場合はエージェント) を実行するために使用されるユーザーアカウントを選択できるようにするには、このフィールドを空のままにします。 |
パスワード | ユーザーのパスワードを入力します。 |
エージェント側のチェックアウト
エージェント側のチェックアウトは、Windows、Linux、macOS エージェントマシンでサポートされます。
TeamCity は、チェックアウトディレクトリごとに Azure DevOps ワークスペースを自動的に作成します。ワークスペースは、VCS ルート設定でアカウントが指定されているユーザーに代わって作成されます。
デフォルトでは、作成される Azure DevOps ワークスペースは、TFS サーバー設定で定義された場所を使用します。ビルド構成パラメーター teamcity.tfs.workspace.location を local または server に設定することで、TeamCity に特定のワークスペースの場所を使用するように強制できます。
作成された Azure DevOps ワークスペースは、デフォルト値の 1209600 秒(2 週間)に設定された teamcity.tfs.workspace.idleTime ビルドエージェントプロパティを介して構成されたタイムアウトに基づいて自動的に削除されます。
設定 | 説明 |
|---|---|
すべてのファイルを強制的に上書きします。 | このオプションを有効にすると、TeamCity は Azure DevOps を呼び出して、すべてのファイルを書き換えるワークスペースを更新します。 |
通常、ビルドごとに強制更新を行う必要はありません。TeamCity がリポジトリから最新バージョンを取得していないと思われる場合は、このオプションを使用できます。
Azure DevOps では、マシン上の複数のワークスペースを同じディレクトリにマップすることはできません。その場合、TeamCity Azure DevOps エージェント側のチェックアウトは、交差するワークスペースを削除して、指定された VCS ルートとチェックアウトルールに一致する新しいワークスペースを作成しようとします。
別のユーザーによって作成されたワークスペースを削除できない可能性があることに注意してください。この場合、そのようなワークスペースを手動で削除する必要があります。
ローカルマッピングを区別するには、次の形式のチェックアウトルールを使用することをお勧めします。
$/root1 => /root1$/root2 => /root2
Azure DevOps での認証
Azure DevOps は、2020 年 3 月 2 日以降、代替資格情報のサポートを停止しました(英語)。現在、個人アクセストークンによる認証のみが利用可能です。
個人アクセストークンは、Azure DevOps アカウントの対応するセクション(英語)で発行できます。TeamCity からアクセスするリポジトリで、コードアクセススコープをすべての範囲に設定します。
トークンが発行されたら、それをコピーして、VCS ルート設定のパスワードフィールドに貼り付けます。ユーザー名フィールドは空のままにしておきます。通常のユーザー名 / パスワード資格情報による TFVC リポジトリへの認証をまだサポートしている古いバージョンの Azure DevOps を使用している場合にのみ、ユーザー名を指定する必要があります。
Linux および macOS 上の NTLM/Kerberos
この認証方法を使用するには、マシンに Kerberos ライブラリが含まれていること、および認証が正しく設定されていることを確認してください。問題が発生した場合は、Microsoft のドキュメント(英語)に記載されている手順を確認してください。
Azure DevOps プロキシ構成
Azure DevOps プロキシ(英語)を使用するには、TeamCity サーバーまたはエージェントを実行するユーザーアカウントに対して TFSPROXY 環境変数を定義し、変更を適用するために再起動してください。
例:
HTTP プロキシサーバーの設定
デフォルトの .NET 作業モード
Azure DevOps サーバーと対話するには、TeamCity サーバーまたはエージェントを実行するユーザーアカウントに指定されたプロキシサーバー設定が使用されます。
クロスプラットフォーム作業モード
TeamCity サーバーまたはエージェントに指定されたデフォルトの Java プロキシサーバー設定は、Azure DevOps 統合で使用されます。TeamCity サーバーでは、内部プロパティまたは Java オプションを使用できます。TeamCity エージェントでは、ビルドエージェント構成または Java オプションを使用できます。TeamCity-TFS 統合では、次のオプションがサポートされています。
関連ページ:
接続を構成
TeamCity 接続は、外部サービスへのアクセスに必要な資格情報を保存します。このサードパーティサービスの種類に基づいて、2 つの主要な接続カテゴリがあります。VCS 接続これらの接続は、GitHub、GitLab、Bitbucket クラウドなどの VCS プロバイダーへのアクセスに必要な情報を保存します。これらの接続は、プロジェクト、ビルド構成、パイプラインを最も速く作成する方法を提供します。認証は自動的に処理されるため、リポジトリを選択するだけでビルドステップの設定を開始できます。接続が...
VCS ルートの設定
VCS ルートは、TeamCity ←→ VCS リポジトリ通信の基礎です。この不可欠な要素は、リポジトリのチェックアウト、コードソースのタグ付け、ビルドステータスの VCS への返信など、さまざまな操作を実行するために必要な VCS プロバイダーへの接続を定義します。VCS ルートには次の情報が保存されます。TeamCity がリモートファイルをプルおよびプッシュするために使用する URL を取得してプッシュします。ブランチ情報: TeamCity が追跡する必要があるリポジトリブランチのリスト...
Git
TeamCity は、Git をすぐにサポートします。Azure DevOps Services を使用した Git ソース管理がサポートされています (以下の認証に関する注意事項を参照)。このページには、VCS ルート設定の Git 固有のフィールドの説明が含まれています。一般的な VCS ルートプロパティについては、このセクションを参照してください。注意事項: リモート実行とテスト済みのコミットは IntelliJ IDEA プラグインでサポートされています。Visual Studio アドインで...
TeamCity サーバー起動プロパティの設定
TeamCity サーバーの動作のさまざまな側面は、起動時に渡されるオプションを介してカスタマイズできます。TeamCity 自体に影響を与える内部プロパティ、Java 仮想マシン(JVM)のプロパティ、TeamCity の内部プロパティ:TeamCity には、内部ロジックのさまざまな側面に影響を与える内部構成プロパティがあります。これらは通常、デバッグ、内部定数の変更、実験的な動作の有効化を目的としています。TeamCity サポートチームからの要請がない限り、内部プロパティを変更しないで...
ビルドパラメーターの設定
パラメーターは、TeamCity 設定およびビルドスクリプトの構文を介して参照するペアです。パラメーター部分は、生の値 () にすることも、別のパラメーターへの参照 () を含めることもできます。パラメーター型:TeamCity は次の 3 種類のパラメーターをサポートします。構成パラメーター — ビルド構成内で設定を共有することを主な目的とするパラメーター。これらのパラメーターを使用して、テンプレートから作成された構成やレシピを使用する構成をカスタマイズすることもできます。TeamCity は...
TeamCity 用の VCS ポストコミットフックの設定
TeamCity は、新しい変更を検出するために、アクティブな各 VCS ルートのターゲットとなるリモートリポジトリを定期的にポーリングします。インストールに数百の VCS ルートがある場合、この継続的なポーリングによりサーバーに大きな負荷がかかる可能性があります。コミット後のフックを設定すると、この負荷を軽減し、新しい変更の検出を高速化できます。この場合、新しいコミットがリモートリポジトリにプッシュされるたびに、VCS プロバイダーは即座に TeamCity に最近の変更を確認するリクエストを送...