[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-ci-cd-kakie-triggery-sborki-sushchestvuyut-v-jenkins":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},202,"kakie-triggery-sborki-sushchestvuyut-v-jenkins",6,"ci-cd","CI\u002FCD","🔄","Какие триггеры сборки существуют в Jenkins?","\u003C!-- grade: junior\u002Fmiddle -->\n\n**Триггер сборки (build trigger)** — это механизм, определяющий, при каком событии Jenkins автоматически запускает выполнение пайплайна или джобы.\n\n> Представьте, что триггер — это дверной звонок. Webhook — это когда курьер (Git-сервер) сам нажимает кнопку звонка при доставке. SCM Polling — это когда вы каждые пять минут выглядываете в окно, не пришёл ли курьер. Cron — это когда вы выходите проверять почтовый ящик каждый день в одно и то же время, независимо от того, ждёте ли вы посылку.\n\n### 1. Webhook (рекомендуемый способ)\n\nGit-сервер (GitHub, GitLab, Bitbucket) отправляет HTTP-запрос (webhook) в Jenkins при наступлении события (push, merge, создание Pull Request). Это наиболее эффективный подход:\n\n- **Мгновенная реакция** — сборка стартует сразу после push.\n- **Нет лишней нагрузки** — Jenkins не тратит ресурсы на периодический опрос.\n- **Требует сетевой доступности** — Git-сервер должен иметь возможность отправить HTTP-запрос в Jenkins.\n\n```groovy\n\u002F\u002F Для GitHub:\ntriggers {\n    githubPush()\n}\n\n\u002F\u002F Для GitLab:\ntriggers {\n    gitlab(triggerOnPush: true, triggerOnMergeRequest: true)\n}\n```\n\n### 2. SCM Polling (опрос системы контроля версий)\n\nJenkins периодически проверяет репозиторий на наличие новых коммитов. Если обнаружены изменения — запускается сборка.\n\n- Используется, когда webhook невозможен (закрытый контур, сетевые ограничения, firewall).\n- Создаёт дополнительную нагрузку на Jenkins и Git-сервер.\n\n```groovy\ntriggers {\n    pollSCM('H\u002F5 * * * *')  \u002F\u002F Проверка каждые 5 минут\n}\n```\n\n### 3. Cron (по расписанию)\n\nСборка запускается строго по расписанию, независимо от наличия изменений в коде. Подходит для:\n\n- Ночных (nightly) сборок с полным набором тестов.\n- Регулярных проверок безопасности зависимостей (OWASP).\n- Периодической генерации отчётов.\n\n```groovy\ntriggers {\n    cron('H 2 * * 1-5')  \u002F\u002F В ~2 часа ночи по будням\n}\n```\n\nСинтаксис: `MINUTE HOUR DOM MONTH DOW` (как в Unix cron). Символ `H` — хеш-функция от имени джобы, распределяющая нагрузку, чтобы не все джобы стартовали одновременно.\n\n### 4. Upstream (по завершению другой сборки)\n\nСборка запускается после успешного завершения другого проекта в Jenkins. Полезно для цепочек зависимостей — например, сначала собирается общая библиотека, затем зависимые сервисы.\n\n```groovy\ntriggers {\n    upstream(upstreamProjects: 'core-library\u002Fmain', threshold: hudson.model.Result.SUCCESS)\n}\n```\n\n### 5. Ручной запуск\n\n- Через веб-интерфейс Jenkins (кнопка «Build Now» \u002F «Build with Parameters»).\n- Через REST API:\n\n```bash\ncurl -X POST https:\u002F\u002Fjenkins.company.com\u002Fjob\u002Fmy-job\u002Fbuild\n```\n\n- Через CLI: `java -jar jenkins-cli.jar -s https:\u002F\u002Fjenkins.company.com build my-job`.\n\n### Сравнение триггеров\n\n| Триггер | Реакция | Нагрузка | Когда использовать |\n|---|---|---|---|\n| Webhook | Мгновенная | Минимальная | Основной способ для feature-веток |\n| SCM Polling | С задержкой | Средняя | Закрытый контур без webhook |\n| Cron | По расписанию | Минимальная | Nightly-сборки, security-сканы |\n| Upstream | После другой сборки | Нет | Цепочки зависимых проектов |\n| Ручной | По требованию | Нет | Деплой на production |\n\n### Вывод\n\nВ банковской практике чаще всего используется комбинация: **webhook** для веток разработки (быстрая обратная связь), **cron** для ночных проверок безопасности и **ручной запуск с параметрами** для деплоя на production.\n\n> **На собеседовании:** обычно спрашивают, чем webhook отличается от polling и почему webhook предпочтительнее. Ключевой ответ — webhook реактивен (push-модель), polling активен (pull-модель). Webhook даёт мгновенную реакцию без лишней нагрузки, но требует сетевой доступности Jenkins для Git-сервера.","","middle",[15,16,17,8,18,19],"cron","webhook","pollSCM","jenkins","triggers",[],null,{"title":23,"description":24,"ogTitle":25,"ogDescription":26,"keywords":27,"schemaAnswer":35,"featuredSnippetReady":36},"Какие триггеры сборки существуют в Jenkins — Gymterview","Обзор триггеров сборки Jenkins: Webhook, SCM Polling, Cron, Upstream, ручной запуск. Примеры настройки в Jenkinsfile, рекомендации для банковской среды.","Триггеры сборки Jenkins: Webhook, Cron, Polling и другие — Gymterview","Разбираем 5 способов автоматического запуска сборки в Jenkins с примерами Jenkinsfile. Подготовка к Java-собеседованию.",[28,16,17,29,30,31,32,33,34],"Jenkins триггеры","cron Jenkins","githubPush","upstream trigger","автоматический запуск сборки","Jenkinsfile triggers","Java CI\u002FCD","Jenkins поддерживает 5 типов триггеров: Webhook (рекомендуемый — Git-сервер отправляет HTTP-запрос при push\u002Fmerge), SCM Polling (периодический опрос репозитория через pollSCM), Cron (запуск по расписанию для ночных сборок), Upstream (запуск после завершения другого проекта), Ручной запуск (через UI или REST API). В банковской среде используют комбинацию webhook для разработки и ручной запуск для production.",true]