2017-04-06 245 views
1

ジョブ・ワークスペースから1つのビルド(成果物を含む)しか削除できないのだろうかと思います。Jenkinsジョブ・ワークスペースからビルドを削除する方法

ビルド履歴で「ビルドを削除」しようとしましたが、ビルド履歴テーブルからビルドリファレンスを削除するだけでした。私はサーバーにsshしてコマンドラインからファイルを削除することができますが、私はJenkins Webインターフェイスからそれを行う方法を探しています。

Workspace Cleanup Pluginをインストールした後、現在のワークスペースを消去することができましたが、他のビルドをワークスペースに保存したいと思います。

+0

"ビルドの削除"では、参照を削除する以外のことも行います。どんなファイルが見えないのですか? – BMitch

+0

ビルドの* artifacts *をアーカイブするようにJenkinsを設定した場合、Jenkinsはビルドを削除するときにこれらのアーティファクトを削除しますが、Jenkinsはそのジョブのワークスペースにアーティファクトを保存しません。あなたの仕事は仕事場の管理を担当しています。適切な成果物をアーカイブし、ジョブのワークスペースを使用してストレージを停止するようにJenkinsを設定する必要があるようです。 –

+0

@BMitchジョブを実行すると、スクリプトはネットワークの場所からビットマップをダウンロードし、ジョブワークスペース(JOB_NAME/ws/BUILD_NO /)に保存します。ビルドが完了したら、私はそれらのファイルを保持したいと思います。なぜなら、他のチームがさらなる解析のためにそれらのファイルを必要とするからです。後で私が宇宙を使い果たしたとき、私はいくつかのビルドを削除する必要がありますが、必要ではありません。ビルド履歴テーブルからそれらを削除すると、ビットマップはまだディスク領域を占有します。 –

答えて

4

Jenkinsインスタンスでは、フォルダ/ビルドごとのフラグを設定するには、ジョブの設定で[カスタムワークスペースを使用する]を選択します。

For each job on Jenkins, Jenkins allocates a unique "workspace directory." 
This is the directory where the code is checked out and builds happen. 
Normally you should let Jenkins allocate and clean up workspace directories, 
but in several situations this is problematic, and in such case, this option 
lets you specify the workspace location manually. 
One such situation is where paths are hard-coded and the code needs to be 
built on a specific location. While there's no doubt that such a build is 
not ideal, this option allows you to get going in such a situation. 

... 

そして、あなたのカスタムディレクトリパスは次のようになります:ここでの設定内容から簡単なヘルプ情報である

$ JOB_NAMEは「私のジョブ名」ことと$ BUILD_NUMBERます
workspace\$JOB_NAME\$BUILD_NUMBER ~> workspace\my-job-name\123 

ビルド番号、eq。 "123"。

このアプローチには1つの厄介な問題があります。なぜなら、これを使用することはお勧めできません.Jenkinsは、古いビルドのディスクスペースを再利用することはできません。古いビルドのクリーンアップを手動で処理する必要があり、手間がかかります。

ディスクスペースの使用量を管理し、監督なしで制御できる代わりのアプローチは、デフォルトのワークスペース設定を使用してビルド出力(ファイル、元のソースコード、ライブラリなど)をアーカイブすることです。 。)ビルド後のアクションとして。非常に便利で、Copy Artifact PluginArtifactDeployer Pluginなどの素晴らしいツールを他の仕事で利用できます。

この情報は、あなたのニーズに最も適した意思決定に役立ちます。ただ、ビルドを取り除くためのソリューションを追加したい

C:\${JOB_NAME}\${BUILD_NUMBER} 

0

私はまた、のようなもので、Windowsマシン上で(@のpabloduoの答えのように)「一般/上級/使用カスタムワークスペース」を使用します仕事の仕事場。

私はこれにGroovy Events Listener Pluginを使用します。私は、次のGroovyスクリプトを使用して、プラグインの標準構成を使用して

if (event == Event.JOB_DELETED){ 
    new File(env.WORKSPACE).deleteDir() 
} 

ビルドジョブが削除されたときに、今、カスタムワークスペースが削除されました。

(これは、Jenkinsサーバー上のすべてのジョブに対してイベントがトリガーされるため)カスタム以外のワークスペースも削除されることにご注意ください。

関連する問題