Генератор синтаксиса groovy НЕ работает для этапа шага properties: Set Job Properties
. Я выбрал Discard old builds
, а затем введите 10
в поле Max # of builds to keep
, а затем Generate Groovy
и ничего не отображается.
Версия Jenkins: 2.7
Генератор синтаксиса groovy НЕ работает для этапа шага properties: Set Job Properties
. Я выбрал Discard old builds
, а затем введите 10
в поле Max # of builds to keep
, а затем Generate Groovy
и ничего не отображается.
Версия Jenkins: 2.7
Вы можете использовать метод properties
, который, вложенный в BuildDiscarderProperty
, в конце концов имеет ключ, который вы хотите установить. У меня все еще нет надежного способа поиска правильного синтаксиса каждого ключа. После долгих угадываний и проверки:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
Обратите внимание, что этот фрагмент предназначен для скриптового синтаксиса.
Что касается декларативного синтаксиса, вы можете использовать блок options
:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
Параметры для logRotator
(из исходного кода):
daysToKeepStr
: история сохраняется только до наших дней.numToKeepStr
: сохраняется только это количество журналов сборки.artifactDaysToKeepStr
: артефакты сохраняются только до наших дней.artifactNumToKeepStr
: только у этого количества сборок есть свои артефакты.Более подробную информацию можно найти в базе знаний Cloudbees и в документах для блока options
.
Для скриптовых конвейеров используйте:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
Дженкинс имеет встроенные страницы генератора синтаксиса.
Синтаксис конвейера: генератор фрагментов
<your jenkins url
>/pipeопровод-синтаксис/
Синтаксис конвейера: Генератор директив
<your jenkins url
>/директива-генератор/
Вадим ответил мне по какой-то неизвестной причине. Я упростил это следующим образом, и теперь он работает:
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
Отменить сборку после определенного числа дней:
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
Отменить сборку после определенного количества сборок:
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
Если вы хотите сконфигурировать сохранение сборки на уровне задания многоблочного конвейера (vs во всех отдельных Jenkinsfile
s), это тоже возможно:
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
Они могут не отображаться в GUI, хотя, по крайней мере, для меня с Jenkins 2.73.2. Но вы все равно можете использовать JobDSL или изменить config.xml
напрямую (я не сказал этого; -))
Если вам нужен программный способ (т.е. делать это из функции, а не использовать конвейерный синтаксис options{}
):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}