web-dev-qa-db-ja.com

特定のビルドステップ後にアーティファクトを公開する

TeamCityでビルド構成を3つのステップでセットアップしました。

  • ソリューションの構築
  • ユニットテストを行う
  • アーティファクトをFTPにアップロードする

FTPアップロードには、 http://teamcityrunners.codeplex.com/ から取得したFTPUploadプラグインを使用しました。アップロードするフォルダが絶対パスに設定されました:

%userprofile%\.BuildServer\system\artifacts\%env.TEAMCITY_PROJECT_NAME%\%env.TEAMCITY_BUILDCONF_NAME%\%env.BUILD_NUMBER%\

ビルドログによると、アーティファクトの公開は、すべての手順が完了した後にのみ行われます。

特定のビルドステップの後にアーティファクトを公開するようにTeamCityを構成することは可能ですか?

15
rpeshkov

私のプロジェクトの1つでも同様のことをしています。 2つのビルド構成を使用します。

1つ目は、ソリューションを構築し、単体テストを実行して、アーティファクトを生成します。

2番目のビルドは、最後に成功したビルドで Artifact Dependency でセットアップされます。つまり、2番目のビルドは最初のビルドからアーティファクトを取得することから始まります。 2番目のビルドには、ftpサイトにアップロードするビルドステップがあります。 2番目のビルドは、最初のビルドを指す Finish Build Trigger でセットアップされます。これにより、最初のビルドが終了するたびに開始されます。

この方法ではもう少し作業が必要ですが、一度セットアップすると、かなりうまく機能します。

14
Mike Two

アーティファクトをTeamCityサーバーにアップロードすることを目的としている場合は、外部プラグインは必要ありません。ビルド構成の一般設定で「アーティファクトパス」を入力するだけです。同様に、特別にフォーマットされたテキストを標準出力に出力することで、ビルド中にアーティファクトを公開できます。 "サービスメッセージ"

TeamCityに関係なく、FTPにアップロードする場合にのみ、上記のプラグインが必要になります。

9
Yaegor

上記のチケットによると、TW-1558外部アーティファクトの公開(FTP、コピー)この問題を修正するための新しいプラグインがあります。 (私はそれを使用していません。)

http://confluence.jetbrains.com/display/TW/Deployer+plugin ビルド構成設定では、ビルドステップで新しいランナーを使用できます。新しいランナーは次のとおりです。

  • SMBDeployer-SMBプロトコルを介してWindows共有にファイルをアップロードする
  • FTPDeployer-FTPサーバーにファイルをアップロードします
  • SSH Deployer-SSH経由でファイルをアップロードします(SCPまたはSFTPプロトコルを使用)
  • SSHExec-SSHを使用して任意のリモートコマンドを実行します
  • Tomcat Deployer-WARアプリケーションアーカイブをリモートTomcatインスタンスにデプロイします(ターゲットTomcatサーバーにManager webappがインストールされている必要があります)
4
AnneTheAgile

TeamCity 8以降、ビルドログにメッセージを送信することで Meta-Runner 機能を使用してアーティファクトをビルドできることに注意してください。

2
Jeff Martin