2016-08-22 8 views
0

私はJenkinsとPipelineスクリプトを使用しています。スクリプトの最後に、Jenkins\jobs\MyMultiBranch\branches\master\buildsの一部のコンテンツ(一部のログとbuild.xml)を削除/移動したいのですが、Jenkins - 'builds'ディレクトリ下のファイルをクリーニング/移動する方法

どのようにしてPipelineを使用することができますか? 私はこれを試しました。

bat "del /F \"C:\\Program Files (x86)\\Jenkins\\jobs\\MyMultiBranch\\branches\\master\\builds\\%BUILD_NUMBER%\\build.xml\"" 

しかし、それは動作していない、ファイルはまだそこにあります。誰も助けることができますか?

答えて

2

Jenkinsが自分の作業ディレクトリを削除できないことは意味があります。 ダニエルが言及したときに保存したいアーティファクトを最初に保存してから、job Aワークスペースのクリーニングを担当する2番目のジョブ(たとえばdelete-job)をトリガーします。それは次のようになります。削除 - ジョブはあなたのjob Aフォルダを削除できるようにするために

// First save out anything you want 
archiveArtifacts artifacts: '**/saveme.log' 

// At the very end of your pipeline, call delete-job with the path you want to delete as a build parameter 
build job: 'delete-job', quietPeriod: 5, wait: false, parameters: [[$class: 'StringParameterValue', name: 'folderToDelete', value: "${pathToFolderToDelete}"]] 

静かな期間は十分なはずです。

delete-jobは、単にそのようになります。pathToFolderToDeleteは自動的にジョブパラメータに基づいて、ジェンキンスによってinfered変数である

node() { 
    bat "del /F '${pathToFolderToDelete}'" 
} 

+0

ええ、チェーンジョブは、ジョブが完了するまでロックを解除できないことがわかっているので、実現可能な解決策です。私はこれを試して戻ります。 – stratovarius

+0

これは質問に答えました(私と違い)。 +1: –

+0

とてもうまくいった。お二人のおかげです。 1つの最後の質問。あなたが与えてくれた1行は、次のように変更しなければならなかったので、 'bat" del/F \ "$ {pathToFolderToDelete} \" " cygpathプラグインのようなものを使用していますか?それが動作するかテストしましたか? – stratovarius

関連する問題