Как правильно указать проверку битбакета в Jenkinsfile - PullRequest
0 голосов
/ 12 марта 2020

Я очень новичок в Дженкинс и хотел убедиться, что я могу автоматически запускать конвейер по пу 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, я все равно клонирую репо. Так в чем был смысл?

1 Ответ

1 голос
/ 12 марта 2020

Если тип вашей работы "Конвейер из SCM", вы можете поставить галочку напротив "Легкая проверка". Это принесет Jenkinsfile только при первой проверке.

Если по какой-то другой причине вы хотите первую проверку, но не вторую, используйте

pipeline {
  options {
    skipDefaultCheckout true
  }

Затем вам потребуется явно запросить оформление заказа, используя, например, checkout scm, где это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...