TeamCity オンプレミス 2023.11 ヘルプ

ビルドキャッシュ

「ビルドキャッシュ」機能を使用すると、ビルド構成で、ビルド実行中に生成された特定のファイル (ダウンロードされた npm パッケージや Maven ローカルリポジトリアーティファクト(英語)など) を公開できます。公開されたキャッシュは、公開した同じ構成または他の構成によって、後続のビルド中に再利用できます。この手法により、ビルドルーチンが最適化され、高速化されます。

共通情報

パブリッシャーとコンシューマーをキャッシュする

ビルドキャッシュ機能を 2 つのモードのいずれかで動作するように設定できます。

  • 初期ビルドキャッシュ設定により、この機能は、以前のビルド中に同じ機能によって公開されたキャッシュをダウンロードできます。

  • あるいは、1 つのビルドキャッシュ機能でキャッシュを公開し、別のビルドキャッシュ (別のビルド構成から) でキャッシュをダウンロードするように設定することもできます。このモードでは、「パブリッシャー」機能と「コンシューマー」機能を設定して、異なるビルド構成間でキャッシュを交換できます。キャッシュコンシューマー機能の数に制限はありませんが、キャッシュパブリッシャーと同じプロジェクトに属している必要があります。

サイズ制限

キャッシュは、.teamcity.build_cache フォルダーに非表示のアーティファクトとして公開されます。公開されたキャッシュを表示するには、アーティファクトタブ隠されたアーティファクトを表示するリンクをクリックします。

Published artifacts

キャッシュはアーティファクトとして公開されるため、管理 | グローバル設定ページで設定できるビルドアーティファクトファイルの最大サイズ設定の影響を受けます。

操作の順序

ビルド構成がキャッシュをアップロードするように構成されている場合、ビルドステージは次の順序で配置されます。

  1. アーティファクトの依存関係を解決する

  2. ダウンロードキャッシュ

  3. ソースをチェックアウトする

  4. ビルドを開始する

同じビルド構成内でキャッシュを公開して使用する

このセクションでは、ビルド構成で以前のビルドのキャッシュを再利用できるビルドキャッシュ機能をセットアップする方法を説明します。

  1. ビルド機能を追加するをビルド構成に追加し、一意のキャッシュ名を指定します。

  2. この機能でキャッシュの公開と使用の両方を行う必要があるため、公開キャッシュを使用の両方の設定を有効のままにします。

  3. キャッシュする必要があるファイルとフォルダーへのパスを指定します。各パスは新しい行から開始する必要があります。ワイルドカードはサポートされていません。相対パスはチェックアウトディレクトリに対して解決されます。

    例: npm install または yarn install コマンドによってダウンロードされた NodeJS パッケージをキャッシュするには、このフィールドに node_modules/ と入力します。

  4. デフォルトでは、新しいビルドは、以前のビルドで公開されたものと同一のキャッシュを公開しません。各ビルドでキャッシュをアップロードする場合は、変更された場合のみ公開設定のチェックを外します。

  5. 設定を保存します。機能を構築するページの機能の説明には、同じキャッシュを公開および使用することが記載されている必要があります。

    Build Cache feature description
  6. ビルドを実行し、キャッシュされたすべてのファイルがビルド結果ページで「.teamcity.build_cache」隠しアーティファクトとして利用できることを確認します。

  7. 前回の実行中に公開されたキャッシュが使用されていることを確認するには、ビルドを再度実行し、ビルドログで対応するメッセージを確認します。

別々のビルド構成間でキャッシュを交換する

このセットアップでは、1 つのビルド構成に追加された「パブリッシャー」ビルドキャッシュ機能がそのキャッシュを公開し、別の構成に追加された「コンシューマー」ビルドキャッシュ機能がこのキャッシュをダウンロードします。ダウンロードされたキャッシュは、パブリッシャーの公開ルールパスと一致する同じ場所に配置されます。

同じプロジェクトに属する構成の機能を追加する限り、パブリッシャーとコンシューマーの機能を必要な数だけセットアップできます。

パブリッシャーの設定

  1. ビルド機能を追加するをビルド構成に追加し、一意のキャッシュ名を指定します。

  2. キャッシュする必要があるファイルとフォルダーへのパスを指定します。各パスは新しい行から開始する必要があります。ワイルドカードはサポートされていません。相対パスはチェックアウトディレクトリに対して解決されます。

    例: npm install または yarn install コマンドによってダウンロードされた NodeJS パッケージをキャッシュするには、このフィールドに node_modules/ と入力します。

  3. デフォルトでは、新しいビルドは、以前のビルドで公開されたものと同一のキャッシュを公開しません。各ビルドでキャッシュをアップロードする場合は、変更された場合のみ公開設定のチェックを外します。

  4. キャッシュを使用チェックボックスをオフにします。

  5. 設定を保存します。機能を構築するページの機能の説明には、キャッシュを公開するだけであると記載されている必要があります。

    Only publish
  6. ビルドを実行し、キャッシュされたすべてのファイルがビルド結果ページで「.teamcity.build_cache」隠しアーティファクトとして利用できることを確認します。

コンシューマーの設定

  1. ビルド機能を追加するをビルド構成に追加し、パブリッシャー機能が使用するのと同じキャッシュ名を指定します。

  2. 公開チェックボックスをオフにします。

  3. 設定を保存します。機能を構築するページの機能の説明には、キャッシュのみを使用することが記載されている必要があります。

    Use only
  4. 新しいビルドを実行し、ビルドログをチェックして、必要なキャッシュファイルがダウンロードされていることを確認します。

  5. この公開されたキャッシュを必要とするすべてのビルド構成について、上記の手順を繰り返します。

関連事項

関連ページ:

Node.js

Node.js ビルドランナーを使用すると、、などの Node.js ツールを実行できます。一般的なビルド手順の設定の説明については、ビルドステップの設定を参照してください。前提条件:現在、Node.js ステップは Docker/LXC コンテナー内でのみ実行できます。利用可能な Docker/Podman 設定に関する一般的な情報については、コンテナーラッパーを参照してください。現在のビルドステップで使用する Node.js のバージョンを定義できます。TeamCity はデフォルトでイメ...

ビルド結果ページ

TeamCity では、ビルドに関するすべての情報は、キューに入れられているか、実行中であるか、終了しているかにかかわらず、ビルド結果ページに蓄積されます。このページには、ビルド構成ホームページから、ホームモードで参照しているときに、ビルド番号またはビルドステータスがリンクとして表示される TeamCity UI のさまざまな場所からアクセスできます。一部のデータは、ビルドが終了した後にのみアクセスできます。変更、パラメーター、依存関係などの詳細は、キューで待機しているビルドにも適用できます。こ...

ビルド機能を追加する

ビルド機能は、ビルド構成に追加して、実行中のビルドやビルド結果のレポートに影響を与えることができる機能の一部です。TeamCity ビルドの特徴:TeamCity には、構成に追加できる次のビルド機能が付属しています。AssemblyInfo パッチャー AssemblyInfo.cs ファイルに手動でパッチを適用することなく、アセンブリにビルド番号を自動的に設定できます。詳細 ... 自動マージ必要なブランチのビルドを追跡し、ビルドが構成された条件を満たした場合 (たとえば、ビルドが成功した場合...

TeamCity データのクリーンアップ

TeamCity のクリーンアップ機能により、古いビルドデータや不要なビルドデータを自動的に削除できます。サーバーのクリーンアップ構成は管理 | サーバー管理 | クリーンアップ設定で使用可能です。クリーンアップスケジュールの設定が可能で、一般的なクリーンアップ情報が表示されます。特定のプロジェクトに関連するクリーンアップルールは、プロジェクト設定 | クリーンアップ規則で構成されます。これらのルールは、どのデータをクリーニングし、何を保存するかを定義します。これらはプロジェクトまたはビルド構成...

ステータス発行者のコミット

コミットステータスパブリッシャーは、TeamCity がコミットのビルドステータスを外部システムに自動的に送信できるようにするビルド機能です。この機能は、TeamCity にバンドルされているオープンソースプラグインとして実装されます。サポートされているシステム:GitHub(プルリクエストのビルドステータスもサポートされています)、GitLab、Azure DevOps(サポートされるステータス: 保留中、成功、失敗、エラー)、Bitbucket サーバーおよび Bitbucket クラウド、J...