У нас большой репозиторий SVN, и я хотел бы сделать небольшую проверку Дженкинса. Я понимаю концепцию редких проверок и, имея ее на месте, я могу заставить вещи работать так, как мне хотелось бы. Однако, когда я что-то делаю на Дженкинсе и выполняю его постоянно, я не могу приступить к работе.
У меня есть структура репо следующим образом
trunk\file.txt
trunk\FolderA
trunk\FolderB
trunk\FolderC
trunk\FolderD
Я бы хотел оформить заказ и обновить
trunk\file.txt
trunk\FolderA
trunk\FolderB
но НЕ
trunk\FolderC
trunk\FolderD
Мой код конвейера выглядит следующим образом
checkout([$class: 'SubversionSCM',
additionalCredentials: [[credentialsId: strCredentialsId, realm: strRealm]],
excludedCommitMessages: '',
excludedRegions: '',
excludedRevprop: '',
excludedUsers: '', filterChangelog: false,
ignoreDirPropChanges: false,
includedRegions: '',
locations: [
[
remote: "${strRepoPath}/trunk",
local: "${softwarePath}",
depthOption: 'unknown',
credentialsId: strCredentialsId,
cancelProcessOnExternalsFail: true,
ignoreExternalsOption: false
],
[
remote: "${strRepoPath}/trunk/FolderA",
local: "${softwarePath}/FolderA",
depthOption: 'infinity',
credentialsId: strCredentialsId,
cancelProcessOnExternalsFail: true,
ignoreExternalsOption: false
],
[
remote: "${strRepoPath}/trunk/FolderB",
local: "${softwarePath}/FolderB",
depthOption: 'infinity',
credentialsId: strCredentialsId,
cancelProcessOnExternalsFail: true,
ignoreExternalsOption: false
]
],
quietOperation: false,
workspaceUpdater: [$class: 'UpdateWithCleanUpdater']])
Всякий раз, когда я запускаю этот код в первый раз, все выглядит так, как ожидалось. Однако, когда Jenkins запускает его в следующий раз, UpdateWithCleanUpdater приводит к тому, что FolderA и FolderB сначала удаляются, а затем извлекаются снова. Результат по-прежнему верен, однако, это займет гораздо больше времени, чем я бы хотел, и дольше, чем необходимо.
Я бы хотел оставить UpdateWithCleanUpdater , потому что я хочу, чтобы Дженкинс очистил файлы, сгенерированные при предыдущем запуске.
Есть ли какое-то решение для этого с помощью плагина Jenkins SVN? Как мне сделать это «вручную», то есть выполнить проверку в первый раз, очистить и обновить только в следующий раз, и при этом выполнять автоматические запуски Jenkins на основе обнаружения изменений в репозитории SVN?
Заранее спасибо!