2014-12-11 2 views
1

Я пытаюсь создать работу с использованием API Jenkin. Он создает задание, но не использует параметры, указанные в XML.Удаленное создание заданий в Jenkins не полностью создает задание

В этом случае создается 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); 

ответ

2

Глядя на config.xml от работы с параметрами показывает, что файл XML немного отличается по сравнению с моим выходом на Дженкинс 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>  
    ... 
Смежные вопросы