Ответ
Запуск задания в Jenkins можно выполнить несколькими способами, в зависимости от контекста и требований к автоматизации.
1. Через веб-интерфейс (ручной запуск):
- Перейдите на дашборд Jenkins.
- Найдите нужный пайплайн или фристайл-проект.
- Нажмите кнопку "Build Now" (или "Собрать сейчас").
- Для параметризованных сборок откроется форма для ввода параметров.
2. Через REST API (для автоматизации из скриптов или внешних систем):
Используйте curl или аналогичные инструменты. Требуется API-токен пользователя (настраивается в Пользователь → Настройки → API Token).
# Запуск простой сборки
curl -X POST "http://JENKINS_URL/job/MY_JOB/build"
--user "USERNAME:API_TOKEN"
# Запуск параметризованной сборки с передачей параметров
curl -X POST "http://JENKINS_URL/job/MY_JOB/buildWithParameters"
--user "USERNAME:API_TOKEN"
--data "PARAM1=value1&PARAM2=value2"
# Использование crumb для защиты от CSRF (если включена)
CRUMB=$(curl -s "http://USERNAME:API_TOKEN@JENKINS_URL/crumbIssuer/api/json" | jq -r '.crumb')
curl -X POST "http://JENKINS_URL/job/MY_JOB/build"
-H "Jenkins-Crumb: $CRUMB"
--user "USERNAME:API_TOKEN"
3. По триггеру (автоматический запуск): Джоба может быть настроена на запуск автоматически при наступлении события:
- SCM Polling: Опрос репозитория (Git, SVN) на изменения по расписанию (например,
H/5 * * * *— каждые 5 минут). - Webhooks: При получении HTTP-запроса от системы контроля версий (например, GitHub/GitLab Webhook).
- По расписанию (Cron): Использование поля
triggers { cron('H 2 * * *') }в Declarative Pipeline или настройки в UI. - Запуск другими джобами: Через шаг
build job: 'Downstream-Job'в пайплайне.
4. Через Jenkins CLI (устаревший, но возможный способ):
java -jar jenkins-cli.jar -s http://JENKINS_URL/ build MY_JOB -s -v
Из моего опыта: В современных CI/CD пайплайнах я предпочитаю использовать API-вызовы из других джоб (например, запуск деплой-джобы после успешного билда) или вебхуки из Git. Это обеспечивает полную автоматизацию процесса "commit → build → test → deploy". Для отладки или экстренных деплоев используется ручной запуск с параметрами через веб-интерфейс.
Ответ 18+ 🔞
Э, слушай, а вот про этот ваш Jenkins, я тебе сейчас так расскажу, что ты офигеешь. Запустить эту мартышлюшку можно на все лады, как душе угодно. Главное — понимать, зачем тебе это надо, а то можно и впиздюрить так, что потом полдня разгребать.
1. Тыкать кнопки в браузере (для ленивых или когда всё горит): Это, бля, классика жанра. Заходишь на свой Jenkins, ищешь глазами эту самую джобу, которая тебе сломала жизнь, и просто жмёшь эту волшебную кнопку "Build Now". Ёпта, проще некуда. Если там ещё параметры какие наворочены — вылезет окошко, где их надо вбить. Тут главное не облажаться, а то доверия ебать ноль к тому, что ты там натыкаешьешь.
2. Через ихнюю АПИшку (для крутых автоматизаторов):
Вот это уже серьёзно. Берёшь curl и начинаешь стучаться к Jenkins, как будто ты ему родной. Но без токена — нихуя не выйдет, он тебя как последнего бздуна пошлёт. Токен этот надо в настройках пользователя выпросить.
# Просто запустить, без затей
curl -X POST "http://JENKINS_URL/job/MY_JOB/build"
--user "USERNAME:API_TOKEN"
# А вот если с параметрами, то уже интереснее
curl -X POST "http://JENKINS_URL/job/MY_JOB/buildWithParameters"
--user "USERNAME:API_TOKEN"
--data "PARAM1=value1&PARAM2=value2"
# Если там защита от CSRF включена (эта хуйня с crumb), то придётся плясать с бубном
CRUMB=$(curl -s "http://USERNAME:API_TOKEN@JENKINS_URL/crumbIssuer/api/json" | jq -r '.crumb')
curl -X POST "http://JENKINS_URL/job/MY_JOB/build"
-H "Jenkins-Crumb: $CRUMB"
--user "USERNAME:API_TOKEN"
Вот это уже выглядит солидно, можно в скрипты пихать и чувствовать себя богом автоматизации.
3. Автоматом, по какому-нибудь событию (чтоб вообще руками не трогать): А вот это, дружок, вершина эволюции. Настраиваешь джобу так, чтобы она сама запускалась, когда надо.
- Опрос репозитория (SCM Polling): Поставил расписание типа
H/5 * * * *— и он каждые пять минут судорожно дёргает гит, проверяя, не закоммитил ли кто-нибудь какую-нибудь дичь. Волнение ебать, когда он что-то находит. - Вебхуки (Webhooks): Идеальный вариант. Ты в гите нажал "пуш" — и через секунду Jenkins уже подозрение ебать чувствует и начинает собирать. Магия, блядь.
- По расписанию (Cron): Старый добрый крон.
H 2 * * *— чтобы в два ночи всё упало и тебя разбудило. Красота. - Запуск одной джобой другой: Это когда у тебя цепочка: одна собрала — пинает следующую. Главное, чтобы первая не накрылась медным тазом, а то вся цепочка встанет.
4. Через ихний CLI (способ для мазохистов и тех, у кого как будто на дворе 2002-й год):
java -jar jenkins-cli.jar -s http://JENKINS_URL/ build MY_JOB -s -v
Честно? Да похуй на этот способ. Он старый, неудобный, и про него все уже забыли. Как будто хуй в пальто.
А если по делу, из моего опыта: Нормальные пайплайны строятся на вебхуках из гита и на вызовах АПИ между джобами. Получается этакая конвейерная лента: закоммитил → собралось → протестировалось → уехало на стенд. Удивление пиздец, когда это работает. А кнопку в интерфейсе жмёшь только когда всё горит синим пламенем и надо срочно что-то затолкать в прод с особыми параметрами. Вот так вот, нехитрая жопа.