Я пытаюсь создать работу с помощью API Jenkin. Он создает задание, но не использует параметры, указанные в XML.
В этом случае MyJob создается, но у него нет TEST_PARAM при просмотре работы. Я должен вручную создать это.
Этот XML в основном из существующей работы, но с измененными параметрами.
PHP-код:
$url = 'https://jenkins_url.com/createItem?name=MyJob';
$file = '<?xml version="1.0" encoding="UTF-8"?>
<project>
<actions />
<description></description>
<logRotator class="hudson.tasks.LogRotator">
<daysToKeep>-1</daysToKeep>
<numToKeep>20</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<hudson.model.StringParameterDefinition>
<name>TEST_PARAM</name>
<description />
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
</hudson.model.ParametersDefinitionProperty>
<com.sonyericsson.rebuild.RebuildSettings
plugin="[email protected]">
<autoRebuild>false</autoRebuild>
</com.sonyericsson.rebuild.RebuildSettings>
</properties>
<scm class="hudson.scm.NullSCM" />
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<authToken>12345678910</authToken>
<triggers />
<concurrentBuild>false</concurrentBuild>
<builders />
<publishers />
<buildWrappers />
</project>';
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,$url);
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_handle,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl_handle,CURLOPT_POST,1);
curl_setopt($curl_handle,CURLOPT_POSTFIELDS, $file);
curl_setopt($curl_handle,CURLOPT_USERPWD, "user:pass");
curl_setopt($curl_handle,CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
$buffer = curl_exec($curl_handle);
print_r(curl_getinfo($curl_handle));
curl_close($curl_handle);
print_r($buffer);
Просмотр файла config.xml из задания с параметрами показывает, что ваш XML-файл немного отличается от моего вывода на Jenkins 1.565.3.
Попробуйте обернуть ваши параметры с parameterDefinitions
(внутри ParametersDefinitionProperty
элемент):
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>TEST_PARAM</name>
<description />
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<!-- more parameters go here -->
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
...
Других решений пока нет …