Как вызвать Jenkins Pipeline при коммите Git - PullRequest
0 голосов
/ 14 февраля 2019

Я настраиваю конвейер Jenkins для моего приложения .Net Core.

Сборка многоуровневого конвейера Jenkins получает триггер при фиксации Git, если я настраиваю проверочный SCM в конфигурации многоуровневого конвейера.Но многоуровневая сборка конвейера не вызывает триггера при git commit, если я явно извлекаю SCM из сценария декларативного конвейера Jenkins.

Есть ли способ решить эту проблему?

Ниже приведена команда checkout, которую я использую внутри скрипта:

checkout([$class: 'GitSCM', branches: [], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'CleanCheckout'], [$class: 'PruneStaleBranch']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'credential-id', url: 'my/git/ssh/url']]])

1 Ответ

0 голосов
/ 15 февраля 2019

Чтобы запустить сборку при новом коммите git, сначала необходимо включить опрос SCM в сценарии конвейера, добавив правильную директиву triggers к вашей Jenkinsfile:

triggers {
  pollSCM 'H/2 * * * *'
}

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

Опрос - это самый простой способ получить то, что вы хотите.Тем не менее, вы должны рассмотреть возможность использования хука post-commit вместо polling .Используя опрос Дженкинс должен периодически проверять SCM на наличие изменений.В случае перехвата после фиксации, Jenkins будет уведомлен об изменениях SCM, если это необходимо.Он предпочтительнее опроса , потому что он уменьшит количество требуемых запросов и трафик от Jenkins к репозиторию SCM.

После настройки перехвата после фиксации директива triggers должна быть изменена командойпредоставление пустой строки в качестве параметра cron для триггера pollSCM.

triggers {
  pollSCM ''
}

Это может сбивать с толку, но эта пустая строка необходима для того, чтобы задание обрабатывало запросы перехвата после фиксации.Это также не очень хорошо задокументировано документами Дженкинса.

...