Groovy generator składni NIE działa dla kroku próbki properties: Set Job Properties
. Wybrałem Discard old builds
i wszedłem 10
w Max # of builds to keep
pole, a potem Generate Groovy
i nic się nie pojawia.
Wersja Jenkins: 2.7.0
Odpowiedzi:
Jeśli chodzi o składnię deklaratywną, możesz użyć options
bloku:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
Parametry dla logRotator
(z kodu źródłowego ):
daysToKeepStr
: historia jest zachowywana tylko do dziś.numToKeepStr
: przechowywana jest tylko ta liczba dzienników kompilacji.artifactDaysToKeepStr
: artefakty są przechowywane tylko do dziś.artifactNumToKeepStr
: tylko ta liczba kompilacji ma swoje artefakty.Więcej informacji można znaleźć w bazie wiedzy Cloudbees oraz w dokumentacji options
bloku .
numToKeepStr
i na szczęście znalazłem tutaj twoją odpowiedź, aby znaleźć inne parametry. Trochę bałaganu, w jaki sposób dokumentują rzeczy. Dzięki, chociaż ratujesz życie.
Możesz użyć properties
metody, która zagnieżdżona w elemencie BuildDiscarderProperty
ostatecznie ma klucz, który chcesz ustawić. Nadal nie mam solidnego sposobu, aby sprawdzić poprawną składnię każdego klucza. Po wielu zgadywaniach i sprawdzaniu:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
Zauważ, że ten fragment dotyczy składni skryptowej.
*Str
pola w strategy
. Naucz człowieka łowić ryby ... itd.
W przypadku rurociągów opartych na skryptach użyj:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
Aby odrzucić kompilację po określonej liczbie dni :
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
Aby odrzucić kompilację po określonej liczbie kompilacji :
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
W przypadku potoku deklaratywnego możesz dodać to:
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/
. Tutaj jest także inny javadoc.jenkins.io/hudson/tasks/LogRotator.html . Zaglądam też czasami do kodu źródłowego wtyczki na githubie, aby dokładnie zrozumieć. @silencej
Jeśli chcesz skonfigurować przechowywanie kompilacji na poziomie zadań potoku wielobranżowego (w porównaniu do wszystkich indywidualnych Jenkinsfile
), jest to również możliwe:
https://issues.jenkins-ci.org/browse/JENKINS-30519?focusedCommentId=325601&page=com .atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel # comment-325601
Oprócz tego BuildRetentionBranchProperty
możesz skonfigurować dowolne inne *BranchProperty
tutaj:
https://github.com/jenkinsci/branch-api-plugin/tree/master/src/main/java/jenkins/branch
Mogą jednak nie być wyświetlane w GUI, przynajmniej dla mnie z Jenkinsem 2.73.2. Ale nadal możesz używać JobDSL lub modyfikować config.xml
bezpośrednio (nie powiedziałem tego ;-))
Jeśli potrzebujesz sposobu programistycznego (tj. Robienie tego z funkcji, zamiast używać options{}
składni potoku):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}