3

Linuxユーザーフォルダーからtarファイルをコピーし、別のジョブからバイナリファイル(コンパイル済み)をコピーして新しいtarファイルを作成するジェンキンの仕事があります。その後、jenkins ユーザーはその新しい tar ファイルを jenkin のワークスペースからコピーできます。何もビルドしたり、SCM からファイルを取得したりしません。その後、しばらくすると突然 tar ファイルがワークスペースから削除されたので、もう一度ジョブを実行する必要があります。どうすればそれを防ぐことができますか?

4

1 に答える 1

9

ワークスペースは、別のビルドが開始されたり、誰かがビルドを削除したり、スレーブがオフラインになったりすることによって上書きされる可能性があるため、ジョブが完了した後に既存のワークスペースに依存するべきではありません...

後で使用するためにファイルを保存したいので、ジョブのビルド後の構成で「アーティファクトをアーカイブする」オプションを使用する必要があります。たとえば、と入力する**/*.tarと、Jenkins はビルドの最後にすべての TAR ファイルを保存します。

次に、Jenkins のパーマリンクを使用してアーティファクトにアクセスできます。
http://JENKINS/job/JOB_NAME/lastSuccessfulBuild/artifact/bin/my-app.tar

URL が示すように、これにより、最後に成功したビルドのファイルが得られます。


補足として、アーカイブされたファイルを別のビルドにコピーする場合、これを行う最善の方法はCopy Artifact プラグインを使用することです。

そうすれば、複数の Jenkins スレーブ間であっても、Jenkins がファイルのコピーを処理し、他の Jenkins ワークスペースへのパスをハードコーディングするような面倒なことをする必要はありません。

于 2012-12-01T23:24:12.023 に答える