Come faccio a cancellare il mio Jenkins / Hudson storia di build?
-
25-09-2019 - |
Domanda
I ha recentemente aggiornato la configurazione di uno dei miei Hudson costruisce. La storia build è fuori sincronia. C'è un modo per cancellare la mia storia di build?
Si prega e grazie
Soluzione
Se si fa clic su Gestisci Hudson / ricaricare la configurazione da disco, Hudson ricaricherà tutti i dati della cronologia di generazione.
Se i dati su disco è incasinato, avrete bisogno di andare alle vostre% HUDSON_HOME% \ lavori \ << em> projectname > directory e ripristinare le directory di compilazione perché si suppone di essere. Poi ricaricare i dati di configurazione.
Se si sta semplicemente chiedendo come rimuovere tutta la storia di compilazione, si può solo eliminare le generazioni ad uno ad uno tramite l'interfaccia utente se ci sono solo alcuni, o andare al% HUDSON_HOME% \ lavori \ << em> projectname > directory ed eliminare tutte le sottodirectory lì - corrispondono alla build. Successivamente riavviare il servizio affinché le modifiche abbiano effetto.
Altri suggerimenti
Utilizzare la console di script (Gestisci Jenkins> Console Script) e qualcosa come questo script per eliminare la cronologia di massa build di un lavoro https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy
Questo script presuppone che si desidera eliminare solo una gamma di costruisce. Per eliminare tutte le build per un determinato lavoro, utilizzare questo (testato):
// change this variable to match the name of the job whose builds you want to delete
def jobName = "Your Job Name"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
// uncomment these lines to reset the build number to 1:
//job.nextBuildNumber = 1
//job.save()
Questa risposta è per Jenkins
-
Vai alla pagina iniziale Jenkins → Gestisci Jenkins → Console Script
-
Esegui il seguente script lì. Cambiare
copy_folder
ayour project name
Codice:
def jobName = "copy_folder"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
Questa è un'altra opzione:. Eliminare le generazioni con l'arricciatura
$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
Le eliminazioni di cui sopra a costruire # 1 a # 56 per MyJob lavoro.
Se l'autenticazione è abilitata l'istanza Jenkins, un nome utente e il token API devono essere forniti in questo modo:
$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
Il token API deve essere prelevato dalla pagina di /me/configure
a Jenkins. Basta cliccare sul tasto "Mostra API Token ..." per visualizzare sia il nome utente e il token API.
Modifica:. Si potrebbe essere necessario sostituire doDeleteAll
dai doDelete
negli URL di cui sopra per fare questo lavoro, a seconda della configurazione o la versione di Jenkins utilizzato
Si potrebbe modificare la configurazione del progetto temporanea per salvare solo l'ultima 1 accumulo, ricaricare la configurazione (che dovrebbe buttare il vecchio build), quindi modificare l'impostazione di nuovo per il vostro valore desiderato di configurazione.
Ecco come cancellare tutte le build per tutti i lavori ...... utilizzando il Jenkins Scripting.
def jobs = Jenkins.instance.projects.collect { it }
jobs.each { job -> job.getBuilds().each { it.delete() }}
Questa è la migliore opzione disponibile.
Jenkins.instance.getAllItems(AbstractProject.class).each {it -> Jenkins.instance.getItemByFullName(it.fullName).builds.findAll { it.number > 0 }.each { it.delete() } }
Questo codice cancellerà tutta la storia accumulo Jenkins lavoro.
Se si vuole cancellare la cronologia build di MultiBranchProject (ad esempio gasdotto), vai alla home page Jenkins → Gestisci Jenkins → Console Script ed eseguire il seguente script:
def projectName = "ProjectName"
def project = Jenkins.instance.getItem(projectName)
def jobs = project.getItems().each {
def job = it
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
}
Un altro modo facile da pulire costruisce è con l'aggiunta del Scarta Vecchio Plugin al termine dei lavori. Impostare un numero massimo di build per salvare e quindi eseguire di nuovo il lavoro:
https://wiki.jenkins-ci.org/ display / JENKINS / Rifiuta + Vecchio + build + plug
Vai al %HUDSON_HOME%\jobs\<projectname>
rimuovere builds
dir e rimuovere lastStable, lastSuccessful
link e file rimuove nextBuildNumber
.
Dopo aver fatto i passi precedenti andare al di sotto di collegamento da UI
Jenkins-> Gestisci Jenkins -> ricaricare la configurazione da disco
Lo farà come è necessario
Se si utilizza il metodo Console Script quindi provare a utilizzare la seguente, invece di prendere in considerazione se i lavori vengono raggruppati in contenitori di cartelle.
def jobName = "Your Job Name"
def job = Jenkins.instance.getItemByFullName(jobName)
o
def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)
Utilizzando Console Script.
Nel caso in cui i posti di lavoro sono raggruppati è possibile dare sia un nome completo con le barre:
getItemByFullName("folder_name/job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
o attraversare la gerarchia in questo modo:
def folder = Jenkins.instance.getItem("folder_name")
def job = folder.getItem("job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()
L'eliminazione direttamente dal file system non è sicuro. È possibile eseguire lo script di seguito per eliminare tutte le build da tutti i posti di lavoro (in modo ricorsivo).
def numberOfBuildsToKeep = 10
Jenkins.instance.getAllItems(AbstractItem.class).each {
if( it.class.toString() != "class com.cloudbees.hudson.plugins.folder.Folder" && it.class.toString() != "class org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject") {
println it.name
builds = it.getBuilds()
for(int i = numberOfBuildsToKeep; i < builds.size(); i++) {
builds.get(i).delete()
println "Deleted" + builds.get(i)
}
}
}```
Selezionare: %JENKINS_HOME%\jobs\jobName
Apri il file "nextBuildNumber" e cambiare il numero. Dopo di che la configurazione Jenkins reload. Nota:. "NextBuildNumber" file contiene la generazione successiva senza che saranno utilizzati da Jenkins