Jenkins JSON Result Build Request - PullRequest
       6

Jenkins JSON Result Build Request

1 голос
/ 08 августа 2011

Я искал способ запросить запрос на сборку, вызвав URL, который вернул бы JSON, чтобы я мог настроить ловушку с помощью git для проверки модульных тестов после каждого отправки в удаленный репозиторий.Я нашел URL, который выглядел как то, что я хочу, поэтому я попытался:

http://www.doamin.com:8082/job/bare-bone-test/build/api/json

, однако, когда я пытаюсь сделать это в своем браузере, я получаю

Firefox обнаружил, что серверперенаправляет запрос на этот адрес способом, который никогда не завершится

, даже если он вызывает сборку этого задания.Это правильный способ запросить сборку, которая будет возвращать ответ JSON?

1 Ответ

1 голос
/ 09 августа 2011

Согласно документации :

Отправка вакансий

Для работы без параметров вам нужно просто HTTP GET on

JENKINS_URL/job/JOBNAME/build?token=TOKEN

, где TOKEN установлен в конфигурации задания.

Если у вас есть параметры, вам нужно отправить JSON. Вот отрезанный shell, с несколькими дополнительными символами новой строки, чтобы быть более читабельным.

json="{\"parameter\": [{\"name\": \"taskfile\", \"value\":
\"$taskfile\"}, {\"name\": \"task\", \"value\": \"$task\"}, {\"name\":
\"jobParameters\", \"value\": \"$jobargs\"}], \"\": \"\"}"
url=http://hudson.basistech.net/job/benson-segmentation-training/build
curl -X POST $url -d token=zorn --data-urlencode json="$json"

Я не совсем уверен, действительно ли необходимо поле TOKEN. Я смог начать сборку, используя простой способ получить работу // URL сборки:

curl -v http://localhost:8080/job/testjob/build
* About to connect() to localhost port 8080 (#0)
*   Trying 127.0.0.1... connected
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /job/testjob/build HTTP/1.1
> User-Agent: curl/7.21.3 (x86_64-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18
> Host: localhost:8080
> Accept: */*
> 
< HTTP/1.1 302 Found
< Server: Winstone Servlet Engine v0.9.10
< Location: http://localhost:8080/job/testjob/
< Content-Length: 0
< Connection: Keep-Alive
< Date: Mon, 08 Aug 2011 20:48:37 GMT
< X-Powered-By: Servlet/2.5 (Winstone/0.9.10)
< 
* Connection #0 to host localhost left intact
* Closing connection #0

Для хита git post-commit этого должно быть достаточно.

Redirect, wtf?

Причина, по которой вы сталкиваетесь с проблемой бесконечного перенаправления, заключается в том, что URL build/api/json перенаправляет на конечную точку build/api (я думаю, что обработчик для URL build пытается перенаправить обратно на страницу состояния задания, выбрав от последней части URL). По какой-то странной причине build/api перенаправляет обратно к себе. Я не думаю, что сборка поддерживает суффикс api/json, но, как показано выше, он не нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...