Eu li estes links:
- Limpe o histórico de compilação do Jenkins (limpe a compilação ontem)
- Como excluo as compilações 11 a 1717 no Jenkins?
- Jenkins: remova compilações antigas com linha de comando
Em primeiro lugar, trabalho em volta Folders
e estes contêm Views
e estes, Jobs
respectivamente.
Considere o seguinte (para simplificar):
- Pasta :
jenkins-01
Visualizar : Trabalho alfa : Executar - Pasta :
jenkins-02
Visualizar : betax Trabalho : Executar
De cima, duas observações importantes:
- As pastas
jenkins-01
e são para dois projetos diferentes.jenkins-02
- O
Execute
Trabalho , pode ser repetido em várias Pastas diferentes , mas apenas sobre o nome.
Agora considere o seguinte:
Eu posso executar o Job
through:
Sem personalização View
- portanto, a All
exibição padrão/genérica padrão:
http://localhost:9090/job/jenkins-01/job/Execute/
Através de muitos Views, digamos
http://localhost:9090/job/jenkins-01/view/alpha/job/Execute/
http://localhost:9090/job/jenkins-01/view/betax/job/Execute/
E todo o histórico ou rastreamento de compilações estão neste local de caminho:
/Users/username/ci/jenkins/Contents/jobs/jenkins-01/jobs/Execute
Console de scripts
Através do seguinte:
def jobName = ???
println jobName;
//I used any of them
//def job = Jenkins.getInstance().getItemByFullName(jobName, Job.class)
//def job = Jenkins.instance.getItem(jobName)
if(job != null) {
job.getBuilds().each { println it }
//job.getBuilds().each { it.delete() }
//job.nextBuildNumber = 1
//job.save()
}
else
println 'job is NULL'
Eu tentei muitas combinações sobre jobName
(sobre ???
) e sempre consigo null
. Então, qual deve ser o valor correto para jobName
?
Linha de comando
java -jar jenkins-cli.jar -s http://localhost:9090 delete-builds jobName=??? '1-56'
Novamente: qual deve ser o valor correto jobName
?.
Lembre-se: cada um Job
é declarado em um Folder
e o nome do Job (apenas o nome) pode ser repetido em muitosFolders
Existe apenas um caminho autoritário para um trabalho - é
job.fullName
; isso éhttp://localhost:9090/job/jenkins-01/job/Execute/
Isso lhe dará o resumo
fullName
de todos os seus trabalhos:As exibições são apenas listas filtradas de trabalhos a serem exibidos. Você deve ver o mesmo histórico de trabalho em todas as visualizações.
NB: É lamentável que o Jenkins permita trabalhos com o mesmo nome, pois se você "mover" um trabalho, poderá destruir outro em outra pasta com o mesmo nome.
Atualização: o código a seguir selecionará todas as pastas de "nível superior" e as iterará, listando o conteúdo de cada uma. As condições para (ou não) processar recursivamente são anotadas. Existe apenas um identificador para um trabalho e é
it.fullName
.Você pode adicionar condições adicionais para limitar o escopo a pastas específicas ou padrões de nome de trabalho.