Если я хорошо понял ваш вопрос ... Я не думаю, что вы можете удалить изменения 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."
}
PS У вас есть несколько способов прервать работу раньше, не отказывая при сборке, но этот является самым чистым в моем опыте, хотя вам нужно разрешить некоторое разрешение для подписи администратора на Jenkins (я видел это в другом потоке здесь какое-то время go, не могу найти его сейчас)