1

TeamCityを使用して、変更されたファイルのみをgitからWebサーバーにデプロイしようとしています。これを行うには、ファイルの変更されたタイムスタンプを中央リポジトリの最後のコミット時間にする必要があります。

TeamCityでクリーンビルド(クリーンチェックアウトディレクトリ)を実行するときは常に、ファイルの変更時刻はビルドが実行された時刻です。信頼できるように、最後のコミット時間である必要があります。

ここでコミットフックを利用しました: gitのuse-commit-timesに相当するものは何ですか? 個人のリポジトリで機能するようになりましたが、TeamCityに実装すると機能しないようです。

TeamCityにファイルの変更時刻として最後のコミット時刻を使用させるにはどうすればよいですか?

4

1 に答える 1

0

多くのフープの後、私はついにそれを機能させました。

  1. 次のスクリプトを使用して、チェックアウト後と受信後のgitフックを追加します: https ://stackoverflow.com/a/11543788/444917
  2. C:\Program Files (x86)\Git\share\git-core\templates\hooks\ビルドエージェントにフックを配置します
  3. エージェント側のVCSチェックアウトを使用するようにTeamCityビルドを構成します([ビルド構成の編集]> [VCS]> [エージェントでVCSチェックアウトモードを自動的に設定])。これにより、最初のビルドがすべてのコミットをプルするため、非常に遅くなる可能性があることに注意してください。
  4. また、ビルド間のアーティファクトの依存関係も使用しました。そこでタイムスタンプを保持するには、ファイルを圧縮して、そのzipをアーティファクトとして保存する必要がありました。http://youtrack.jetbrains.com/issue/TW-10941を参照してください
于 2012-11-07T22:08:49.203 に答える