チーム Foundation バージョン管理 (Azure DevOps)
Azure DevOps でホストされているプロジェクトは、次のいずれかのバージョン管理システムを使用できます。
Git — Linus Torvalds が最初に作成したオープンソースの分散バージョン管理システム。 TeamCity を Azure DevOps 上の Git リポジトリに接続するには、 Azure DevOps OAuth 接続をセットアップします。 Git リポジトリをターゲットとするすべての VCS ルートに共通する機能の詳細については、この記事を参照してください: Git。
チーム Foundation バージョン管理 (TFVC) — Azure DevOps 専用のバージョン管理システムで、以前はチーム Foundation サーバー (TFS) および Visual Studio チームシステムとして知られていました。 TeamCity と TFVC リポジトリの通信は、 Azure DevOps PAT 接続によって行われます。
この記事では、TFVC リポジトリのみに焦点を当てます。
クロスプラットフォーム Azure DevOps 統合
TeamCity と Azure DevOps の統合は、Windows、Linux、macOS で動作します。 TeamCity サーバーとビルドエージェントは、チーム Foundation サーバー 2012 以降および Azure DevOps Services と初期状態で連携できます。
このタイプの VCS ルートでは、デフォルトとクロスプラットフォームの二つの動作モードを使用できます。 Azure サーバーにチーム Explorer が存在する場合、TeamCity はデフォルトモードを使用します。 それ以外の場合は、クロスプラットフォームモードに切り替わります。
チーム Explorer のバージョンを検出するとき、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 を ローカル または サーバー に設定することで、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 Server と連携するには、TeamCity サーバーまたはエージェントを実行するユーザーアカウントに指定されたプロキシサーバー設定が使用されます。
クロスプラットフォーム作業モード
TeamCity サーバーまたはエージェントに指定されたデフォルトの Java プロキシサーバー設定が、Azure DevOps 統合で使用されます。 TeamCity サーバーでは、 内部プロパティまたは Java オプションを使用できます。 TeamCity エージェントでは、 ビルドエージェント構成または Java オプションを使用できます。 TeamCity-TFS 統合では、次のオプションがサポートされています: