У меня есть приложения и их коды в репозиториях git. Также jenkinsfiles для создания приложений и этих файлов в другом репозитории. Проблема в том, что Дженкинс создает журнал изменений. Дженкинс добавляет журнал изменений jenkinsfiles для создания наборов изменений, и я этого не хочу. Поскольку эти изменения связаны с инфраструктурой, они не имеют отношения к приложениям. Как предотвратить это? Я не нашел обходного пути или решения.
Декларативный конвейер jenkins игнорирует журнал изменений jenkinsfiles
Ответы (1)
Если я правильно понял ваш вопрос... Я не думаю, что вы можете удалить изменения Jenkinsfile из набора изменений, который Jenkins читает из git, но вместо этого вы можете пропустить свой конвейер для сборки, если в Jenkinsfile есть только изменения.
Если это поможет... Во-первых, вам нужно прочитать набор изменений:
def changedFiles = []
for (changeLogSet in currentBuild.changeSets) {
for (entry in changeLogSet.getItems()) {
for (file in entry.getAffectedFiles()) {
changedFiles.add(file.getPath())
}
}
}
Затем вы можете проверить, является ли это только Jenkinsfile:
if (changedFiles.size() == 1 && changedFiles[0] == "Jenkinsfile"){
println "Only Jenkinsfile has changed... Skipping build..."
currentBuild.getRawBuild().getExecutor().interrupt(Result.SUCCESS) // this skips your build prematurely and makes the rest of the stages green
sleep(1) // you just need this
}else{
println "There are other changes rather than only Jenkinsfile, build will proceed."
}
P.S. У вас есть несколько способов завершить задания раньше без сбоя сборки, но этот, по моему опыту, самый чистый, даже несмотря на то, что вам нужно разрешить некоторые разрешения подписи администратора для Jenkins (я видел это в другой ветке здесь некоторое время назад, правда сейчас не найду)
person
nandilov
schedule
24.04.2020
Ваш ответ ясен. Можем ли мы внести некоторые изменения, подобные этим, в первом коде, если changeLogSet включает только JenkinsFile, удалите этот changeLogSet из buildChangeset. Затем ваш второй блок кода changeSet.size == 0 прерывает сборку.
- person aluz; 26.04.2020