ファイル内容の置き換え
ファイル内容の置き換えは、ビルド前に正規表現の置換を実行してテキストファイルを処理し、ビルド後にファイルの内容を元の状態に復元するビルド機能です。
File Content Replacer を使用する一般的なケースは、特定のファイルで一度に 1 つの属性を置き換えることです。たとえば、ビルド番号でファイルにパッチを適用するために使用できます。
必要に応じて、複数の File Content Replacer ビルド機能を追加できます。
複数の属性を置き換える
異なるファイル / プロジェクトの同じ属性を異なる値に置き換えます
この機能は、AssemblyInfo パッチャーが提供する機能を拡張します。
ビルド機能を追加する方法を参照してください。
ファイルコンテンツ置換の設定
値を手動で指定するか、必要に応じて編集できる値のプリセットを置換に使用できます。
オプション | 説明 |
|---|---|
テンプレート (オプション) | ファイルコンテンツリプレーサーは、置換するすべての属性のテンプレートを提供します。テンプレートをロードボタンをクリックすると、置換用の値のプリセットを含むテンプレートのコンボボックスが表示されます。コンボボックスに入力することで、テンプレートを言語 (例: |
プロセスファイル | ファイルリストを編集をクリックし、置換する値を検索するファイルへのパスを指定します。改行またはコンマで区切られたルールのセットを Ant のようなワイルドカードがサポートされています (例: 事前定義されたテンプレートが選択されている場合、そのテンプレートに関連付けられているファイルが使用されます。 |
パターンに一致するファイルがない場合、ビルドに失敗します | デフォルトで有効になっています。指定されたパターンに一致するファイルがない場合でも、ビルドの失敗を防ぐには、このオプションを無効にします。 ランナーが指定されたパターンに一致するファイルを少なくとも 1 つ見つけた場合、このファイルに置き換えるコンテンツがない場合でも、ステップは成功したとみなされることに注意してください。 |
ファイルエンコーディング | デフォルトでは、TeamCity はファイルのエンコードを自動検出します。エンコードを明示的に指定するには、ドロップダウンメニューから選択します。カスタムエンコードを指定する場合は、エージェントでサポートされているこ(英語)とを確認してください。 事前定義されたテンプレートが選択されている場合、そのテンプレートに関連付けられているファイルエンコーディングが使用されます。 |
検索対象 | 検索するパターンを正規表現(英語)形式で指定します。 事前定義されたテンプレートを選択した場合は、そのテンプレートに関連付けられたパターンが使用されます。 パターン文字列の先頭に |
大 / 小文字を区別する | デフォルトでは、比較は大文字と小文字を区別します。大文字と小文字を区別しない言語の場合はチェックを外します。 |
正規表現モード | デフォルトで有効になっており、検索文字列と置換文字列の両方に適用されます。固定文字列を使用するには、チェックを外します。 |
置換 | 検索対象ボックスに文字を置き換えるために使用するテキストを入力します。ファイルから検索対象ボックスの文字を削除するには、このボックスを空白のままにします。
|
テンプレート
このセクションでは、使用可能な置換テンプレートをリストします。
.NET テンプレート
以下のアセンブリ属性(英語)を置き換えるためのテンプレートが提供されています (AssemblyInfo パッチャーとの比較についてはこのセクションを参照してください)。
.NET Corecsproj テンプレート
AssemblyNameAssemblyTitleAssemblyVersionAuthorsCompanyCopyrightDescriptionFileVersionPackageIdPackageVersionProductTitleVersionVersionPrefixVersionSuffix
MFC テンプレート
以下の MFC C++ リソースキーを置き換えるためのテンプレートが提供されています。
FileDescriptionCompanyNameProductNameLegalCopyrightFileVersion*ProductVersion*
Xcode テンプレート
Info.plist ファイル内の次のコア Foundation キー(英語)を置き換えるためのテンプレートが提供されています。
CFBundleVersionCFBundleShortVersionStringまたは
CFBundleVersionとCFBundleShortVersionStringの両方を同時に
サンプル
カスタム接尾辞を使用して属性値を拡張する
AssemblyConfiguration を固定リテラルに置き換えたくないが、AssemblyInfo.cs から AssemblyConfiguration を保持し、たとえば [assembly: AssemblyConfiguration("${AssemblyConfiguration} built by TeamCity")]) のようにカスタム接尾辞を追加したいだけだとします。
以下を実行します。デフォルトの置換 $1MyAssemblyConfiguration$7 を $1$5 built by TeamCity$7 に変更します。
複雑な正規表現パターンを変更するには、この外部ツール(英語)が役立つ場合があります。
指定したファイルのみにパッチを適用する
デフォルトの AssemblyInfo テンプレートは通常の Visual Studio プロジェクト / ソリューションレイアウトに従いますが、多くの情報が複数のプロジェクト間で共有され、共有ファイル (たとえば、CommonAssemblyInfo.cs) に存在する場合があります。
この共有ファイルにのみパッチを適用するとします。または、プロジェクトごとに AssemblyInfo.cs ファイルにパッチを適用する必要があります。
以下を実施:
処理しようとしている属性に対応する
AssemblyInfoテンプレートをロードします (たとえば、AssemblyVersion)覗くフィールドのファイルパスのリストをデフォルトの
*/Properties/AssemblyInfo.csから*/CommonAssemblyInfo.csに変更するか、ここに複数のコンマ行または改行で区切られたファイル(myproject1/Properties/AssemblyInfo.cs, myproject2/Properties/AssemblyInfo.csなど)をリストします。
スペースを含むパスパターンの指定
コンマは区切り文字として認識されるため、コンマに続く場合を除き、スペースは通常、パターンの一部と見なされます。
TeamCity サーバー UI は、入力フィールドの先頭と末尾のスペースをトリミングするため、<spaces>foo.bar のような単一行パターンは、保存時に foo.bar になることに注意してください。次の回避策が利用可能です。
AssemblyVersion 属性の最後のバージョンパーツ / ビルド番号のみを変更する
AssemblyInfo.cs の AssemblyVersion が Major.Minor.Revision.Build (1.2.3.* に設定)であり、Build 部分(最後のドット(*)のみ)を交換するとします。
AssemblyInfo(C#)テンプレートに AssemblyVersion をロードし、デフォルトパターンを変更します。
to
デフォルトの置換を変更します。
to
関連ページ:
ビルド機能を追加する
ビルド機能は、追加の機能を有効にするために任意のビルド構成に追加できる機能です。例: ステータス発行者のコミットビルド機能は、コードファイルを保存する VCS に TeamCity ビルド結果を公開し、調査自動割り当ては最新の変更によってビルドが壊れたユーザーを識別し、これらの問題を解決するタスクを自動的に割り当てます。構成されたビルド機能は、削除することなくいつでも一時的に無効にできます。TeamCity ビルドの特徴:TeamCity には、構成に追加できる次のビルド機能が付属しています。A...
VCS チェックアウトモード
ビルド構成のバージョン管理設定ページでは、プロジェクトのソースコードを VCS から取得する方法を構成できます。VCS ルートを接続してチェックアウトオプションを構成できます。VCS チェックアウトモードは、プロジェクトソースがエージェントに到達する方法に影響する設定です。このモードは、ソースのチェックアウトのみに影響します。現在のリビジョンおよび変更データの取得ロジックは TeamCity サーバーによって実行されるため、TeamCity サーバーはどのモードでも VCS サーバーにアクセスする...
バージョン管理でのプロジェクト設定の保存
TeamCity では、プロジェクト設定をバージョン管理リポジトリ(VCS)と同期できます。サポートされている VCS は、Git、Mercurial、Perforce、Subversion、Azure DevOps Server(旧 TFS)です。プロジェクト設定を XML 形式または Kotlin 言語で保存し、Kotlin ベースの DSL を使用してプログラムで設定を定義できます。重要なポイント:この機能は何をしますか ? 個々のプロジェクトの設定を XML または Kotlin 形式でリモ...
Kotlin DSL
TeamCity では、バージョン管理で設定を XML 形式で保存するだけでなく、DSL (Kotlin 言語に基づく) で設定を保存することもできます。バージョン管理に保存された DSL を使用すると、プログラムで設定を定義できます。Kotlin は静的に型指定されるため、IDE で自動補完機能を自動的に受け取ります。これにより、利用可能な API オプションの発見がはるかに簡単になります。TeamCity での Kotlin DSL の使用に関するブログ投稿シリーズと推奨リファクタリングの記...
Docker レジストリ接続
Docker レジストリ接続ビルド機能により、TeamCity はビルドの開始前に DockerHub またはその他のコンテナーレジストリに自動的にサインインできます。この機能を次の場所に追加します。TeamCity による Docker/Podman 操作 (たとえば、および) の監視と検出を許可します。ビルド前に認証されたレジストリに自動的にログインし、ビルド後にログアウトします。ローカル (Docker と Podman の両方) イメージをクリーンアップし、レジストリにプッシュ (Doc...