O gerador de sintaxe groovy NÃO está funcionando para a etapa de amostra properties: Set Job Properties
. Selecionei Discard old builds
e entrei 10
no Max # of builds to keep
campo e então Generate Groovy
nada aparece.
Versão Jenkins: 2.7
O gerador de sintaxe groovy NÃO está funcionando para a etapa de amostra properties: Set Job Properties
. Selecionei Discard old builds
e entrei 10
no Max # of builds to keep
campo e então Generate Groovy
nada aparece.
Versão Jenkins: 2.7
Respostas:
Quanto à sintaxe declarativa, você pode usar o options
bloco:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
Parâmetros para logRotator
(do código-fonte ):
daysToKeepStr
: a história é mantida apenas até hoje.numToKeepStr
: apenas este número de logs de construção são mantidos.artifactDaysToKeepStr
: artefatos são mantidos apenas até hoje.artifactNumToKeepStr
: apenas este número de compilações tem seus artefatos mantidos.Mais informações podem ser encontradas na base de conhecimento do Cloudbees e nos documentos do options
block .
numToKeepStr
e felizmente encontrei sua resposta aqui para encontrar os outros parâmetros. É uma bagunça como eles documentam as coisas. Obrigado, embora você seja um salva-vidas.
Você pode usar o properties
método que, aninhado no BuildDiscarderProperty
eventualmente, tem a chave que deseja definir. Ainda não tenho uma maneira sólida de pesquisar a sintaxe correta de cada chave. Depois de muita suposição e verificação:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
Observe que este snippet é para sintaxe com script.
*Str
campo em strategy
. Ensine um homem a pescar ... etc
Para pipelines com script, use:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
Para descartar a construção após um determinado número de dias :
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
Para descartar compilação após um determinado número de compilações :
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
Para pipeline declarativo, você pode adicionar isto:
options {
buildDiscarder(
logRotator(
// number of build logs to keep
numToKeepStr:'5',
// history to keep in days
daysToKeepStr: '15',
// artifacts are kept for days
artifactDaysToKeepStr: '15',
// number of builds have their artifacts kept
artifactNumToKeepStr: '5'
)
)
}
jenkins-base-url:port if any/pipeline-syntax/
. Aqui está também outro javadoc.jenkins.io/hudson/tasks/LogRotator.html . Também procuro, às vezes, o código-fonte github do plugin para entender em detalhes. @silencej
Se você deseja configurar a retenção de compilação no nível de trabalho do pipeline multibranch (vs em todos os Jenkinsfile
s individuais ), isso também é possível:
https://issues.jenkins-ci.org/browse/JENKINS-30519?focusedCommentId=325601&page=com .atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel # comment-325601
Além do, BuildRetentionBranchProperty
você pode configurar qualquer outro dos *BranchProperty
aqui:
https://github.com/jenkinsci/branch-api-plugin/tree/master/src/main/java/jenkins/branch
Eles podem não ser mostrados na GUI, pelo menos para mim com Jenkins 2.73.2. Mas você ainda pode usar JobDSL ou modificar o config.xml
diretamente (eu não disse isso ;-))
Se você precisar de uma maneira programática (ou seja, fazer isso a partir de uma função, em vez de usar a options{}
sintaxe de pipeline):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}