Генератор синтаксиса groovy НЕ работает на этапе выборки properties: Set Job Properties. Я выбрал, Discard old buildsа затем ввел 10в Max # of builds to keepполе, Generate Groovyно ничего не отображается.
Версия Дженкинса: 2.7
Генератор синтаксиса groovy НЕ работает на этапе выборки properties: Set Job Properties. Я выбрал, Discard old buildsа затем ввел 10в Max # of builds to keepполе, Generate Groovyно ничего не отображается.
Версия Дженкинса: 2.7
Ответы:
Что касается декларативного синтаксиса, вы можете использовать optionsблок:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
Параметры для logRotator(из исходного кода ):
daysToKeepStr: история ведется только до наших дней.numToKeepStr: сохраняется только это количество журналов сборки.artifactDaysToKeepStr: Артефакты хранятся только по сей день.artifactNumToKeepStr: артефакты сохраняются только в этом количестве сборок.Дополнительную информацию можно найти в базе знаний Cloudbees и в документации для optionsблока .
numToKeepStrи, к счастью, я нашел здесь ваш ответ, чтобы найти другие параметры. Какой-то беспорядок, как они все документируют. Спасибо, хотя ты спасатель.
Вы можете использовать propertiesметод, который в BuildDiscarderPropertyконечном итоге содержит ключ, который вы хотите установить. У меня до сих пор нет надежного способа найти правильный синтаксис каждого ключа. После долгих догадок и проверок:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
Обратите внимание, что этот фрагмент предназначен для синтаксиса сценария.
*Strполя в strategy. Научи человека ловить рыбу ... и т. Д.
Для скриптовых конвейеров используйте:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
Чтобы отменить сборку через определенное количество дней :
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
Чтобы отменить сборку после определенного количества сборок :
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
Для декларативного конвейера вы можете добавить это:
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/. Вот еще один javadoc.jenkins.io/hudson/tasks/LogRotator.html . Я также иногда изучаю исходный код плагина на github, чтобы разобраться в деталях. @silencej
Если вы хотите настроить сохранение сборки на уровне задания многоотраслевого конвейера (в отличие от всех отдельных Jenkinsfile), это тоже возможно:
https://issues.jenkins-ci.org/browse/JENKINS-30519?focusedCommentId=325601&page=com .atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel # comment-325601
В дополнение к BuildRetentionBranchPropertyвы можете настроить любые другие *BranchPropertyздесь:
https://github.com/jenkinsci/branch-api-plugin/tree/master/src/main/java/jenkins/branch
Однако они могут не отображаться в графическом интерфейсе, по крайней мере, для меня с Jenkins 2.73.2. Но вы все равно можете использовать JobDSL или config.xmlнапрямую изменять (я этого не говорил ;-))
Если вам нужен программный способ (например, выполнение этого из функции, а не с использованием options{}синтаксиса конвейера):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}