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

È stato utile?

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

  1. Vai alla pagina iniziale Jenkins → Gestisci Jenkins Console Script

     Inserire descrizione dell'immagine qui

  2. Esegui il seguente script lì. Cambiare copy_folder a your project name

Codice:

def jobName = "copy_folder"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

Il mio post

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top