Назад | Перейти на главную страницу

Как удалить старые сборки Jenkins из веток репозитория

Я использовал плагин 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',
    ),
  ),
}