Построить задание Jenkins с параметрами из CURL / HTTP POST

Я делаю AJAX-запрос для вызова PHP(preferably) or similar файл и хотите, чтобы этот код trigger jenkins job remotely, Также я хотел бы пройти parameters на работу, которая будет вызвана. Например, вместе с запросом AJAX мой data будет содержать значение некоторых переменных, таких как job название, runidи т.д., как показано ниже:

$.ajax({
url: 'runjob.php',
type: "GET",
data: { job : job, runid : id },
success: function(data) {
....
}

Согласно https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API, Я написал небольшой код PHP ниже:

runjob.php

 <?php

curl -X POST http://mobile-jenkins.testzynx.com:8080/job/trserver-git/build \
--data token=12981209380192380129802 \
--data-urlencode json='{"parameter": [{"name":"id","value":runid}, {"name":"profile", "value":"tr-flex.properties"}]}'

?>

где runid это переменная, которая будет в моем коде запроса AJAX и trserver-git это имя работы Дженкинс.

который следует синтаксису, как показано в фактическом URL:

Синтаксис сверху URL

curl -X POST JENKINS_URL/job/JOB_NAME/build \
--data token=TOKEN \
--data-urlencode json='{"parameter": [{"name":"id", "value":"123"}, {"name":"verbosity", "value":"high"}]}'

?>

где токен — это токен пользовательского API, который я получил из своих свойств в Jenkins.

Тем не менее, этот код (runjob.php) не похоже на работу и I am not able to trigger jobs and hence no parameters,

Позже, когда я смогу запустить задание с переданными параметрами, I want to read those parameters to a shell scipt that runs as a part of jenkins job. Например,

./runTest.sh -Drunid=$id -Dprofile=$profile как параметры maven.

Есть ли хороший пример того, как выполнить сценарий запуска и задания параметров удаленного параметризации jenkins? PHP preferred,

1

Решение

Вот мое решение, и это сработало для меня:

$url = "http://build:[email protected]:8080/job/android-test/buildWithParameters";
$data = "POST_RESULTS=true&RUN_ID=".$testrun_id."&CHECK_NAME=SampleAutomatedPlan";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// $output contains the output string
$output = curl_exec($ch);

// close curl resource to free up system resources
curl_close($ch);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]