web-dev-qa-db-ja.com

Teamcityから別のサーバーにアーティファクトをコピーするにはどうすればよいですか?

teamcityから別のサーバーにアーティファクトをコピーするにはどうすればよいですか?ありがとう

20
Raul

ビルドスクリプトまたは 外部 から実行できます。

5
CrazyCoder

私がこれを行った方法は、物事をはるかに簡単にします。アーティファクトの依存関係を介して、必要なすべてのファイルを取り込む別の構成をセットアップし、cmdスクリプトを実行してファイルをネットワーク上の別のドライブにxcopy/copyします。これは、cmdスクリプト、vbs、python、シェルなどを使用して実行できます。

  • スクリプトを同じ作業ディレクトリに置くのと同じように、ディレクトリをローカルであるかのように参照するだけでよいことを忘れないでください。

つまり、cmdスクリプト:: xcopy。\ "my build Artifact(s)"\path\to\drive\on\my\network\"my build Artifacts"

それ以上に簡単になることはありません。

当然、アーティファクトが巨大な場合は、より複雑なオプションを検討することをお勧めします。ただし、TeamCityには現在保留中のチケットがあり、投票できます。これにより、1つの構成で複数のランナーを実行できます。したがって、同じ構成にcmdスクリプトを追加するだけで、コピー時間を節約できます。少し余裕があれば投票してください:

http://youtrack.jetbrains.net/issue/TW-366

11
user304133

Deployerプラグイン があり、fileshare/SMB、FTP、SSH、およびその他の手段によるデプロイをサポートしています。使用法は基本的にアーティファクトパスと同じです。

Sambaのみを使用したため、次のように入力する必要があります。

  • ターゲットホストパス:// server/drive/myfolder
  • ユーザー名:mydomain\myusername-この場合、ここにもドメインを書き込む必要がありました
  • パスワード:****
  • ドメイン:mydomain

パスでは、アーティファクトのようにファイルを選択するだけです。

product/* => product.Zip

そしてそれはファイル//server/drive/myfolder/product.Zipを作成します

6
ne2dmar

リモートビルドエージェントからプライマリTeamCityサーバーにアーティファクトをコピーする場合は、[一般設定]でビルドアーティファクトの構成を検討することをお勧めします。

BuildArtifactsに関するTeamCityのwikiエントリ( http://confluence.jetbrains.com/display/TCD7/Build+Artifact )によると、「ビルドが完了すると、TeamCityはビルドのチェックアウトディレクトリでアーティファクトを検索します。指定されたアーティファクトパターン。一致するファイルはTeamCityサーバーにアップロード(「公開」)され、そこでWeb UIからダウンロードできるようになるか、アーティファクトの依存関係を使用して他のビルドで使用できます。」

0
dlaube