Я использовал плагин Blue Ocean для создания задания Jenkins, которое автоматически использует Jenkinsfile (декларативный конвейер) для создания и передачи статуса обратно в GitHub. Все работает нормально.
У меня проблема в том, что я не могу удалить старые сборки. Работа отображается как репозиторий, и я настроил ее на хранение не более 5 сборок. Но я заметил, что проиндексированные ветки, включая главную ветку, также имеют свою собственную конфигурацию. Я пробовал настроить удаление старых сборок, но кнопки сохранения нет! Я думал, это потому, что конфигурация распространяется из репозитория в ветки, но это не имеет никакого эффекта. Как я могу заставить это работать?
Некоторые свойства задания настраиваются с помощью директив в Jenkinsfiles, а не конфигурации в веб-интерфейсе. В вашем Jenkinsfile:
properties([
// only keep 25 builds to prevent disk usage from growing out of control
buildDiscarder(
logRotator(
artifactDaysToKeepStr: '',
artifactNumToKeepStr: '',
daysToKeepStr: '',
numToKeepStr: '25',
),
),
])
Вы, конечно, можете настроить различные параметры в соответствии со своими потребностями.
Не уверен, какая версия Jenkins принесла обновление, но синтаксис изменился. Модификация примера Джейхендрена:
options {
// only keep 25 builds to prevent disk usage from growing out of control
buildDiscarder(
logRotator(
artifactDaysToKeepStr: '',
artifactNumToKeepStr: '',
daysToKeepStr: '',
numToKeepStr: '25',
),
),
}