Генератор синтаксиса 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'))
])
}