Запустите сборку Jenkins с помощью пакетного сценария

Я работаю с сервером сборки Jenkins для запуска синтеза / моделирования для FPGAs. Прямо сейчас у меня есть ночные сборки и я могу запустить сборку вручную в интерфейсе браузера Дженкинса.

мой вопрос:

есть ли возможность запустить сборку заданий с помощью пакетного скрипта без использования интерфейса браузера?

(Я запускаю Jenkins на Windows 7 64bit.)

5 ответов


вот пример с командой curl (для задания с параметрами):

curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB/buildWithParameters?PARAM1=value1&PARAM2=value

и задание без параметров:

curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB/build

Если вы не хотите использовать свой пользователь / пароль, вы можете создать маркер API для своего пользователя Jenkins:

enter image description here

и используйте этот токен в команде curl:

curl -X POST http://YOUR_JENKINS_URL/job/YOUR_JOB/build?TOKEN=YOUR_API_TOKEN

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

  1. перейдите к конфигурации вашей работы.
  2. прокрутите вниз, чтобы Создать Триггеры и установите флажок Trigger build удаленно (например, из скриптов), и введите маркер аутентификации (например, "MY_TOKEN").

enter image description here

  1. скопируйте один из URL-адресов ниже Токен поле, основанное на том, имеет ли ваша сборка параметры.

затем используйте этот URL в curl команда для запуска сборки. Например:

curl -I https://${JENKINS_URL}/job/tmp/job/dummy-test/build?token=MY_TOKEN

на


вы можете сделать это с помощью команды curl с опцией-I. создайте маркер API для задания jenkins и используйте его для запуска задания. для этого вы также можете использовать пароль пользователя jenkins.

enter image description here


когда я пытался запустить свою работу через curl, я всегда получал" не авторизованные " ошибки.

позже я узнал, что это было потому, что я полностью отключил анонимный доступ на сервере. Решением было установить следующий плагин:https://wiki.jenkins-ci.org/display/JENKINS/Build + токен + Root + плагин

источник:https://issues.jenkins-ci.org/browse/JENKINS-17764


в новом трубопроводе Дженкинса, под Создать Триггеры установите флажок триггер строит удаленно (например, из скриптов). Затем дайте Дженкинсу токен, который потребуется при запуске сборки.

Not authorized ошибки

проблема с запуском сборки удаленно, если вы настроили Дженкинс право и отключен анонимный доступ пользователя, вы получите Not authorized ошибки при попытке запустить сборку из скрипта (как @keocra подчеркнуто.) Теперь у вас есть два варианта:

  1. передайте имя пользователя и пароль при запуске сборки. Это означает, что ваш скрипт должен будет включать имя пользователя и пароль, что означает, что каждый, кто может читать ваш скрипт, будет иметь имя пользователя и пароль, что почти так же плохо, как анонимный доступ.
  2. использовать Построить Корневой Плагин Токена. Этот плагин позволяет использовать дистанционный запуск сборки функции без требует имя пользователя и пароль. Все, что вам нужно, это токен, который вы создали раньше.

запуск сборки

чтобы запустить сборку удаленно, запустите

curl JENKINS_URL/buildByToken/build?job=JobFoo&token=MyToken

здесь JENKINS_URL - это URL-адрес вашего экземпляра Jenkins,JobFoo - это название вашей работы, и MyToken это маркер, который вы ввели под вызвать bulids удаленно.

конечно, вам не нужно использовать curl; вы можете также использовать wget или любая другая программа это может сделать HTTP-запросы.