Ответ
Да, настраивал. Это стандартный способ автоматизации сборок при пуше в репозиторий. Я использовал плагин GitHub Plugin для GitHub и Bitbucket Branch Source Plugin для Bitbucket.
Типовая настройка для GitHub:
- В Jenkins создается Pipeline Job с типом "Pipeline script from SCM".
- В настройках джобы в разделе "Build Triggers" активируется "GitHub hook trigger for GITScm polling".
- В репозитории GitHub (Settings -> Webhooks) добавляется вебхук с URL:
https://<JENKINS_URL>/github-webhook/. Jenkins должен быть доступен из интернета (через ngrok или с публичным IP).
Пример Jenkinsfile, который будет запускаться по вебхуку:
pipeline {
agent any
triggers {
// Эта строка не обязательна при использовании вебхуков, но полезна как fallback
pollSCM('H/5 * * * *')
}
stages {
stage('Build & Test') {
steps {
sh 'mvn clean package'
sh 'mvn test'
}
}
}
}
Ключевые моменты:
- Для приватных репозиториев в Jenkins нужно добавить учетные данные (Personal Access Token для GitHub, App Password для Bitbucket).
- Если Jenkins находится за NAT, можно использовать обратные вебхуки через сервисы вроде Jenkins Notification Plugin или настроить polling SCM как запасной вариант.
- В Bitbucket Cloud часто проще использовать Bitbucket Pipelines для CI, но интеграция с Jenkins через плагин тоже стабильно работает.