2016-08-22 4 views
0

Ich benutze Jenkins mit Pipeline-Skript. Am Ende des Skripts möchte ich einige Inhalte von Jenkins\jobs\MyMultiBranch\branches\master\builds (d. H. Einige Protokolle und build.xml) löschen/verschieben.Jenkins - Wie säubere/verschiebe ich Dateien im Verzeichnis 'Builds'

Wie kann es mit Pipeline gemacht werden? Ich habe das versucht;

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

aber es funktioniert nicht, die Dateien sind immer noch da. Kann jemand helfen?

Antwort

2

Es macht Sinn, dass Jenkins nicht in der Lage sein würde, sein eigenes Arbeitsverzeichnis zu löschen. Ich denke, was Sie tun könnten, ist zunächst speichern Artefakte, die Sie speichern möchten, wie Daniel erwähnt und dann einen zweiten Job auslösen (sagen delete-job), die für die Reinigung Ihrer job A Arbeitsbereich verantwortlich sein wird. Es würde wie folgt aussehen:

// 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}"]] 

Die ruhige Zeit sollte genug für den Lösch-Job, können Sie Ihre job A Ordner löschen.

delete-job würde einfach so aussehen:

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

Wo pathToFolderToDelete eine Variable automatisch von Jenkins auf der Grundlage der Auftragsparameter infered ist.

+0

yep, verkettete Jobs ist eine machbare Lösung, da wir wissen, dass wir die Sperre erst freigeben können, wenn der Job erledigt ist. Ich werde es versuchen und zurückkommen. – stratovarius

+0

Dieser beantwortete die Frage (anders als meine). +1 :) –

+0

Es hat sehr gut funktioniert. Danke euch beiden. Eine letzte Frage; Eine Zeile, die du angegeben hast, hat nicht funktioniert, also musste ich sie wie folgt ändern: 'bat" del/F \ "$ {pathToFolderToDelete} \" "' Benutzt du sowas wie cygpath plugin? Hast du es getestet? – stratovarius

Verwandte Themen