2

TeamCity の比較的新しい機能である File Content Replacer を使用しています。現在のセットアップでは、VCS に version.js ファイルがあります。

window["MyPlugin"].version = "1.0.##VCS_REVISION##.##CI_BUILD_NUMBER##";

File Content Replacer ビルド機能を使用して、最後の部分を次のものに置き換えます。

%build.vcs.number%.%system.build.number%

ここまでは順調ですね!

関連するビルドステップが 1 つあります。これは MSBuild のステップですが、次のps12 つの関連することを行うcall a 以外は何もしません。

  1. すべての js ファイルを " output" フォルダーに移動します。
  2. すべての js ファイルを " zips" フォルダーに圧縮します。

これらは私の 2 つの成果物 (出力フォルダーと zip ファイル) でもあります。

ただし、File Content Replacer はその変更を元に戻しますが、この元に戻すことはアーティファクト番号 1 にも反映されます。これは、バージョン管理されていないファイルです (プロジェクト フォルダーのサブフォルダーとして配置されています)。version.jszip ファイル内のファイルは元に戻されません。

アーティファクト 1 を に変更すると、必要なmy/output/folder => all.%build.vcs.number%.zip出力ではなく、元に戻された状態が zip ファイルにも含まれます。

成果物ファイルがこの復帰の影響を受けないように TeamCity を設定するにはどうすればよいですか? または、このビルド機能以外に何か必要ですか?

Windows 2012 Server (VM) で実行されている TeamCity 9.1.3 ビルド 37176 と、評価目的のデフォルト データベースを使用しています。TFS 2013 を VCS として使用しています。

PS。これについては、JetBrains フォーラムでも質問しました。

4

1 に答える 1

7

ファイル コンテンツの置換は、「アーティファクトの公開」段階の前に変更を元に戻します。これは「設計による」ものです。ビルドログで確認できます。ただし、非表示の成果物で変更されたファイルを見つけることができます.teamcity/JetBrains.FileContentReplacer/
変更されたファイルを通常のアーティファクトとして公開する場合は、ファイルのコピーを作成する必要があります (または、既に行ったようにパック/アーカイブします)。また、File Content Replacer ビルド機能を使用する代わりに、元に戻されない必要な変更を行うスクリプトを作成できます。

于 2015-11-12T10:38:34.280 に答える