Pergunta

Atualizei recentemente a configuração de uma das minhas construções de Hudson. A história da construção está fora de sincronia. Existe uma maneira de limpar minha história de construção?

Por favor e obrigado

Foi útil?

Solução

Se você clicar em Gerenciar a configuração do Hudson / Recarregar a partir do disco, o Hudson recarregará todos os dados do histórico de compilação.

Se os dados no disco estiverem confusos, você precisará ir para o seu %hudson_home % jobsNome do Projeto> Diretório e restaure os diretórios de construção como deveriam ser. Em seguida, recarregue os dados da configuração.

Se você está simplesmente perguntando como remover todo o histórico de construção, basta excluir as compilações uma a uma através da interface do usuário se houver apenas alguns ou ir para o %hudson_home % jobsNome do Projeto> Diretório e exclua todos os subdiretos lá - eles correspondem às construções. Posteriormente, reinicie o serviço para que as alterações entrem em vigor.

Outras dicas

Use o console do script (gerencie jenkins> console de script) e algo como este script para excluir a granel excluir o histórico de construção de um trabalho https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkdeletebuilds.groovy

Esse script pressupõe que você deseja excluir apenas uma variedade de compilações. Para excluir todas as compilações para um determinado trabalho, use isso (testado):

// 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()

Esta resposta é para Jenkins

  1. Vá para sua página inicial de Jenkins → Gerencie JenkinsConsole de script

    Enter image description here

  2. Execute o seguinte script lá. Mudar copy_folder para your project name

Código:

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

Minha publicação

Aqui está outra opção: Exclua as construções com o CRO.

$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll

Os exclui os exclusão acima compram #1 a #56 para Job MyJob.

Se a autenticação estiver ativada na instância de Jenkins, um nome de usuário e um token de API devem ser fornecidos assim:

$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll

O token da API deve ser buscado do /me/configure Página em Jenkins. Basta clicar no botão "Mostrar token ..." para exibir o nome do usuário e o token da API.

Editar: alguém pode ter que substituir doDeleteAll por doDelete Nos URLs acima para fazer isso funcionar, dependendo da configuração ou da versão de Jenkins usada.

Você pode modificar a configuração do projeto temporariamente para salvar apenas a última compilação, recarregue a configuração (que deve destruir as construções antigas) e alterar a configuração da configuração novamente para o valor desejado.

Aqui está como excluir todas as compilações para todos os trabalhos ...... usando o Script Jenkins.

def jobs = Jenkins.instance.projects.collect { it } 
jobs.each { job -> job.getBuilds().each { it.delete() }} 

Esta é a melhor opção disponível.

Jenkins.instance.getAllItems(AbstractProject.class).each {it -> Jenkins.instance.getItemByFullName(it.fullName).builds.findAll { it.number > 0 }.each { it.delete() } }

Este código excluirá todos os trabalhos Jenkins.

Se você deseja limpar o histórico de compilação do MultibranchProject (por exemplo, pipeline), vá para a sua página inicial de Jenkins → Gerenciar Jenkins → Console de script e execute o seguinte 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()
}

Outra maneira fácil de limpar as construções é adicionando o plug -in antigo de descarte no final de seus empregos. Defina um número máximo de compilações para salvar e depois execute o trabalho novamente:

https://wiki.jenkins-ci.org/display/jenkins/discard+old+build+plugin

Vou ao %HUDSON_HOME%\jobs\<projectname> remover builds diretor e remova lastStable, lastSuccessful links e remova nextBuildNumber Arquivo.

Depois de fazer as etapas acima, vá para o link abaixo da interface do usuário
Jenkins-> Gerenciar Jenkins -> Recarregar a configuração do disco

Fará o que você precisa

Se estiver usando o método do console do script, tente usar o seguinte para levar em consideração se os trabalhos estiverem sendo agrupados em contêineres de pastas.

def jobName = "Your Job Name"
def job = Jenkins.instance.getItemByFullName(jobName)

ou

def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)

Usando console de script.

Caso os trabalhos estejam agrupados, é possível dar um nome completo com barras para a frente:

getItemByFullName("folder_name/job_name") 
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

ou atravessar a hierarquia como esta:

def folder = Jenkins.instance.getItem("folder_name")
def job = folder.getItem("job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

Excluir diretamente do sistema de arquivos não é seguro. Você pode executar o script abaixo para excluir todas as compilações de todos os trabalhos (recursivamente).

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)
    }
  }
}```

Navegar para: %JENKINS_HOME%\jobs\jobName

Abra o arquivo "NextBuildNumber" e altere o número. Depois disso, recarregue a configuração de Jenkins. Nota: O arquivo "NextBuildNumber" contém o próximo compilação não que será usado por Jenkins.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top