Как запустить задание (job) в Jenkins?

Ответ

Запуск задания в 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

Честно? Да похуй на этот способ. Он старый, неудобный, и про него все уже забыли. Как будто хуй в пальто.

А если по делу, из моего опыта: Нормальные пайплайны строятся на вебхуках из гита и на вызовах АПИ между джобами. Получается этакая конвейерная лента: закоммитил → собралось → протестировалось → уехало на стенд. Удивление пиздец, когда это работает. А кнопку в интерфейсе жмёшь только когда всё горит синим пламенем и надо срочно что-то затолкать в прод с особыми параметрами. Вот так вот, нехитрая жопа.