Генератор пазурних синтаксисів НЕ працює для етапу вибірки properties: Set Job Properties
. Я вибрав, Discard old builds
а потім ввів 10
у Max # of builds to keep
поле, а потім Generate Groovy
і нічого не відображається.
Версія Дженкінса: 2.7
Генератор пазурних синтаксисів НЕ працює для етапу вибірки 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'))
])
}