2012-01-13 8 views
5

私はJenkinsを使用しており、ビルドの最後にZipファイルにアーカイブするために「アーティファクトをアーカイブする」ステップがあります。Jenkinsがアーカイブされた成果物を自分自身からアクセスできるようにすることはできますか?

この手順を使用する代わりに、スクリプトを使用して、ビルドの最後にアーティファクトをリモートサーバーにプッシュしたいと思います。私が使用しようとしているサーバーは、スクリプトでREST API/HTTP PUTリクエストを使用してファイルをアップロードします。

同じビルドで作成されたアーティファクトにアクセスしようとしています。だから私がビルド#5にいるなら、#4ビルドではなくビルド#5からのアーティファクトが欲しい。

作成したのと同じビルドで、このzipファイルにスクリプトでアクセスする方法はありますか?

このジップをリモートにアップロードする必要があり、そうするために別のジョブを作成したくないです。

答えて

1

それを生成するビルドの「アーティファクトをアーカイブする」パッケージにアクセスする方法はありません。このステップは常にビルドの最後に発生します。ビルドが終了する前にURLにアクセスすると(例えば、スクリプトを介してビルド中に)空白のzipファイルが作成されます。この制限を回避するために、zipを取得してスクリプトを実行して展開するための2番目のリンクビルドジョブを作成しています。

4

"Publish Over..."プラグインの1つをインストールすると、ビルドの最後に成果物をアップロードできます。

Publish Overプラグインの目標は、どこかでビルド成果物を送信する際に、一貫した 機能と動作のセットを提供することです。

その他のアーティファクトのパブリッシュ方法については、full list of "upload" pluginsも参照してください。

+0

私はcURLスクリプトを使用してコマンドラインで確認しています。アーティファクトをアップロードできます。私はこれを別の仕事にしなければならなくなるかもしれません。パブリッシュオーバープラグインを使用してアーティファクトをzipにパッケージし、スクリプトを実行する方法はありますか? – DonBecker

+0

おそらくパッケージングの対象はこれらのプラグインの範囲外です。ただし、ジョブの最後のビルドステップとしてzipファイルを作成することはできます。 –

+0

最後の手順としてzipファイルを取得できるように見えますが、空白になります。これは、ビルドの最後に「アーティファクトのアーカイブ」が実行されているので意味があります。 Publish Overプラグインでスクリプトを実行する方法が見つからないので、別のジョブを作成する必要があると思います。 – DonBecker

4

@Christopherには、ビルド自体からアーカイブされたzipファイルにアクセスする場合、あなたは、

のいずれかにアーティファクトをアップロードするジェンキンスPluginsページ上Publish Overプラグインのいずれかを使用することができ、言ったようにそれにアクセスするには、以下のリンクを使用することができます。

例えば

http://<server>/job/${JOB_NAME}/lastSuccessfulBuild/artifact/<artifact name w/folder>

  • サーバー= myserver.com
  • ジョブ名= myproject
  • アーティファクト= del/project.zip

あなたのURLは次のようになります。

http://myserver.com/job/myproject/lastSuccessfulBuild/artifact/del/project.zip

EDIT:質問が変更されました。いずれの場合でも、これは現在のビルドの前のビルドのアーティファクトにアクセスするために機能します。

+0

しかし、そのURLは現在のものではなく、* last *ビルドの成果物にアクセスしています。したがってビルドの最後にパブリッシャープラグインを使用することを提案します。 –

+0

真。しかし、彼は彼が "アーティファクトをアーカイブする"ことを指定していました。これは通常ビルドの最後のステップなので、私の提案です。彼は、ビルドごとに既存のアーティファクトにアクセスする必要があると考えました。 – Sagar

+0

クリストファーは正しいです、私は彼らがで作成されたビルドからの成果物にアクセスする必要があります。 – DonBecker

関連する問題