Я очень новичок в Дженкинс и хотел убедиться, что я могу автоматически запускать конвейер по пу sh в мой репозиторий. С этой целью я следовал этому учебнику . Все работает хорошо, но часть, которую я не смог понять, это инструкции около 3:40 секунд, мы используем генератор синтаксиса конвейера Jenkins для создания шага 'bbs_checkout'. Затем это должно быть вставлено в файл Jenkinsfile, который живет с SCM. Допустим, мой Jenkinsfile выглядел следующим образом:
pipeline{
agent any
stages{
stage('Checkout'){
steps{
echo "about to checkout bitbucket"
bbs_checkout <<checkout information generated by the pipeline syntax generator>>
echo "done checking out bitbucket
}
}
}
}
Когда я отправляю sh на свой сервер Bitbucket, а затем просматриваю выходной журнал на Jenkins, я вижу, что на самом деле дважды клонировал свой репозиторий. Кажется, что это происходит один раз само по себе (явно не объявлено в конвейере), а затем снова, когда оно достигает шага извлечения. Это имеет смысл, потому что как Дженкинс мог когда-либо увидеть файл Jenkinsfile, если он еще не клонировал хранилище. Если я удалю шаг bbs_checkout, я все равно клонирую репо. Так в чем был смысл?