#jenkins
#Дженкинс
Вопрос:
Дженкинс версия 1.532.2
Возможно, связано с https://issues.jenkins-ci.org/browse/JENKINS-18407
Когда я перехожу к своей работе и ставлю «api» в конце, я получаю следующий текст
Чтобы программно запланировать новую сборку, отправьте сообщение по этому URL. Если у сборки есть параметры, отправьте сообщение по этому URL и укажите параметры в виде данных формы. В любом случае, успешное постановка в очередь приведет к получению кода состояния 201 с HTTP-заголовком Location, указывающим URL-адрес элемента в очереди. Опрашивая вложенный URL-адрес api / xml элемента очереди, вы можете отслеживать статус поставленной в очередь задачи. Как правило, задача проходит через некоторые переходы состояний, затем в конечном итоге она либо отменяется (ищите логическое свойство «cancelled»), либо выполняется (ищите свойство «executable», которое обычно указывает на объект AbstractBuild .)
Итак, у меня есть два задания, одно с параметрами, а другое без параметров. Когда я запускаю задание без параметров, я получаю поведение, точно описанное выше, т.Е. Код состояния 201 с заголовком «Местоположение», который сообщает мне элемент очереди.
Однако, похоже, это не относится к заданию с параметрами. Когда это сделано, я получаю код состояния 200 (что как бы означает, что он не был поставлен в очередь), однако я вижу, что в пользовательском интерфейсе задание сработало нормально. Кто-нибудь сталкивался с такой же проблемой раньше где-либо еще?
Почему заголовок местоположения важен? Заголовок «Местоположение» является НАИБОЛЕЕ важной информацией. Итак, Дженкинс говорит мне «ХОРОШО», не сообщая мне, какой номер сборки (или номер элемента очереди) был запущен. Одно из предположений, которое может сработать при некоторых обстоятельствах, — запустить сборку и следовать «latestBuild», но это не будет работать в контексте параллельных сборок.
Комментарии:
1. HTTP 200 означает «ОК». Возможно, это ожидаемо?
2. Моя проблема меньше связана с кодами состояния 200/201. Оба они означают OK / QUEUED . Моя проблема в том, что в случае статуса 200 / build с параметрами заголовок «Местоположение» не заполнен, и я обновил вопрос, почему «Местоположение» является самым важным заголовком.
Ответ №1:
Я понимаю, что этот вопрос устарел, но я столкнулся с той же проблемой. Я также получаю код состояния 200. Однако, если вы посмотрите на возвращенные данные (мои данные в формате json), вы найдете раздел QueueItem —
Запросив URL-адрес, указанный в этом разделе, с добавлением суффикса api http://myjenkins/queue/item/4/api/xml/
, я получил нужную информацию. При первом запросе API он может не содержать требуемой информации, но при опросе этого URL-адреса после запуска сборки появится исполняемый раздел, содержащий URL-адрес вновь созданной сборки —
Стоит отметить, что, похоже, URL-адрес очереди имеет ограниченное время жизни, после которого он недоступен (если его больше нет в очереди) — я не уверен, как долго это длится или настраивается ли оно, но для меня это заняло около 5 минут. Надеюсь, это поможет.