Запустите сборку 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:
и используйте этот токен в команде curl:
curl -X POST http://YOUR_JENKINS_URL/job/YOUR_JOB/build?TOKEN=YOUR_API_TOKEN
вы можете запустить задание Дженкинса с настроенным токеном вместо вашего имени пользователя / пароля, что позволит вам поделиться сценарием запуска, не раскрывая свои собственные учетные данные.
- перейдите к конфигурации вашей работы.
- прокрутите вниз, чтобы Создать Триггеры и установите флажок Trigger build удаленно (например, из скриптов), и введите маркер аутентификации (например, "MY_TOKEN").
- скопируйте один из URL-адресов ниже Токен поле, основанное на том, имеет ли ваша сборка параметры.
затем используйте этот URL в curl
команда для запуска сборки. Например:
curl -I https://${JENKINS_URL}/job/tmp/job/dummy-test/build?token=MY_TOKEN
на
вы можете сделать это с помощью команды curl с опцией-I. создайте маркер API для задания jenkins и используйте его для запуска задания. для этого вы также можете использовать пароль пользователя jenkins.
когда я пытался запустить свою работу через curl, я всегда получал" не авторизованные " ошибки.
позже я узнал, что это было потому, что я полностью отключил анонимный доступ на сервере. Решением было установить следующий плагин:https://wiki.jenkins-ci.org/display/JENKINS/Build + токен + Root + плагин
в новом трубопроводе Дженкинса, под Создать Триггеры установите флажок триггер строит удаленно (например, из скриптов). Затем дайте Дженкинсу токен, который потребуется при запуске сборки.
Not authorized
ошибки
проблема с запуском сборки удаленно, если вы настроили Дженкинс право и отключен анонимный доступ пользователя, вы получите Not authorized
ошибки при попытке запустить сборку из скрипта (как @keocra подчеркнуто.) Теперь у вас есть два варианта:
- передайте имя пользователя и пароль при запуске сборки. Это означает, что ваш скрипт должен будет включать имя пользователя и пароль, что означает, что каждый, кто может читать ваш скрипт, будет иметь имя пользователя и пароль, что почти так же плохо, как анонимный доступ.
- использовать Построить Корневой Плагин Токена. Этот плагин позволяет использовать дистанционный запуск сборки функции без требует имя пользователя и пароль. Все, что вам нужно, это токен, который вы создали раньше.
запуск сборки
чтобы запустить сборку удаленно, запустите
curl JENKINS_URL/buildByToken/build?job=JobFoo&token=MyToken
здесь JENKINS_URL
- это URL-адрес вашего экземпляра Jenkins,JobFoo
- это название вашей работы, и MyToken
это маркер, который вы ввели под вызвать bulids удаленно.
конечно, вам не нужно использовать curl
; вы можете также использовать wget
или любая другая программа это может сделать HTTP-запросы.