Отменить старую сборку в многоотраслевом конвейере, на самом деле не удаляет сборки с сервера - PullRequest
1 голос
/ 09 января 2020

У меня есть многоотраслевое конвейерное задание в Jenkins:

http://illinXXXX:XXXX/job/OC/configure

, и я выбрал опцию Отменить старые сборки, как показано ниже:

Discard old builds

Я бы ожидал, что при каждом новом запуске после этого изменения будет удаляться старая сборка с сервера для каждого репозитория внутри этого конвейера. однако, я вижу, что все сборки все еще там, что вызывает у меня проблему с файловой системой. Ссылка Jenkins:

http://illinXXX:XXXX/job/OC/job/productconfigurator-ms/job/master/

С сервера:

jenkins@XXXXX:jenkins/jenkins-production/jobs/OC/jobs/productconfigurator-ms/branches/master/builds>

Я вижу сборки от 541 до 1039

Jenkins ver. 2.176.1

1 Ответ

2 голосов
/ 09 января 2020

Вставленный вами интерфейс предназначен для осиротевших предметов. Осиротевшие элементы относятся к удаленным ветвям, где нет файла Jenkinsfile.

Для многоотраслевого конвейера инструкции по построению каждой ветви находятся внутри Jenkinsfile этой ветви. Здесь вам нужно определить эти ограничения.

Используйте следующее в вашем Jenkinsfile (сверху, в master ветви):

options {
        buildDiscarder(logRotator(numToKeepStr: "100"))
}

Убедитесь, что используется строка (как в "100"), а не число (как в 100).

Параметры:

  • daysToKeepStr: история сохраняется только до этого количества дней.
  • numToKeepStr: хранится только такое количество журналов сборки.
  • artifactDaysToKeepStr: артефакты сохраняются только до этого количества дней.
  • artifactNumToKeepStr: только у этого множества сборок есть свои артефакты сохранены.

Вам может потребоваться один раз запустить конвейер master вручную, чтобы он заработал.

...