Есть ли способ выполнить этап предварительной проверки в декларативных конвейерах Jenkins?
Декларативные конвейеры Jenkins предлагают директиву post для выполнения кода после завершения этапов. Есть ли что-то похожее для запуска кода перед запуском этапов, и, самое главное, перед проверкой SCM?
Например, что-то вроде:
pre {
always {
rm -rf ./*
}
}
Это тогда очистило бы рабочую область моей сборки, прежде чем исходный код был извлечен.
3 ответа
pre
это классная идея, но пока не существует. skipDefaultCheckout
а также checkout scm
(это то же самое, что и проверка по умолчанию):
pipeline {
agent { label 'docker' }
options {
skipDefaultCheckout true
}
stages {
stage('clean_workspace_and_checkout_source') {
steps {
deleteDir()
checkout scm
}
}
stage('build') {
steps {
echo 'i build therefore i am'
}
}
}
}
На данный момент нет pre-build
шаги, но для той цели, которую вы ищете, это можно сделать в конфигурации задания конвейера, а также в заданиях многоотраслевого конвейера, когда вы определяете, где находится ваш файл jenkins, выберите Дополнительные поведения -> Удалить репозиторий и принудительно клонировать.
Удалите содержимое рабочего пространства перед построением, чтобы обеспечить полностью свежее рабочее пространство.
Если вы действительно не хотите удалять все и сохранять некоторое использование сети, вы можете просто использовать эту другую опцию: Дополнительные действия -> Очистить перед оформлением заказа.
Очищайте рабочую область перед каждой проверкой, удаляя все неотслеживаемые файлы и каталоги, включая те, которые указаны в.gitignore. Он также сбрасывает все отслеживаемые файлы в их версионное состояние. Это гарантирует, что рабочая область находится в том же состоянии, что и при клонировании и извлечении в совершенно новый пустой каталог, и гарантирует, что на вашу сборку не повлияют файлы, созданные предыдущей сборкой.
Это не удалит рабочую область, а просто вернет репозиторий в исходное состояние и подтянет новые изменения, если таковые имеются.
Я использую "Подготовить среду для запуска / Содержимое скрипта"