Le générateur de syntaxe groovy ne fonctionne PAS pour l'étape d'échantillonnage properties: Set Job Properties
. J'ai sélectionné Discard old builds
, puis 10
dans le champ Max # of builds to keep
, puis Generate Groovy
et rien ne s'affiche.
Version Jenkins: 2.7
Vous pouvez utiliser la méthode properties
qui, imbriquée dans le BuildDiscarderProperty
contient finalement la clé que vous souhaitez définir. Je n'ai toujours pas de méthode solide pour rechercher la syntaxe correcte de chaque clé. Après avoir beaucoup deviné et vérifié:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
Notez que cet extrait de code correspond à la syntaxe scriptée.
En ce qui concerne la syntaxe déclarative, vous pouvez utiliser le bloc options
:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
Paramètres pour logRotator
(from le code source ):
daysToKeepStr
: l'histoire n'est conservée que jusqu'à ce jour.numToKeepStr
: seul ce nombre de journaux de construction est conservé.artifactDaysToKeepStr
: les artefacts ne sont conservés que jusqu'à ce jour.artifactNumToKeepStr
: seuls les artefacts conservés dans ce nombre de constructions sont conservés.Plus d'informations peuvent être trouvées dans base de connaissances Cloudbees et dans la documentation pour le bloc options
.
Pour les pipelines scriptés, utilisez:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
La réponse de Vadim n'a pas fonctionné pour moi pour une raison inconnue. Je l'ai simplifié comme suit et cela fonctionne maintenant:
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
Pour rejeter la construction après un nombre particulier de jours:
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
Pour rejeter la construction après un nombre particulier de constructions:
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
Si vous souhaitez configurer la conservation de la construction au niveau du travail de pipeline multibranches (par rapport à tous les Jenkinsfile
s individuels), cela est également possible: https://issues.jenkins-ci.org/browse/JENKINS) -30519? FocusCommentId = 325601 & page = com.atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel # comment-325601
En plus de la BuildRetentionBranchProperty
, vous pouvez configurer n’importe quel autre de *BranchProperty
s ici: https://github.com/jenkinsci/branch-api-plugin/tree/master/src/ main/Java/jenkins/branch
Ils pourraient ne pas être affichés dans l'interface graphique cependant, du moins pour moi avec Jenkins 2.73.2. Mais vous pouvez toujours utiliser JobDSL ou modifier le config.xml
directement (je ne l'ai pas dit ;-))
Si vous avez besoin d’un moyen de programmation (c’est-à-dire faire cela à partir d’une fonction plutôt que d’utiliser la syntaxe options{}
pipeline):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}