我必须在jenkins
上触发作业并同时从PhP页面上传文件(Jenkins
已设置文件参数)。
我知道我们可以使用jenkins
远程访问API中指定的curl unix命令轻松完成此操作。但我想使用php curl来同时上传文件来触发作业。
我写了以下代码,但它没有用。
<?php
$baseUrl="197.10.2.1:8080";
$jobName="exampledatacopy";
$json='{"parameter": [{"name":" /var/lib/jenkins/file/workspace/1.txt", "file":"@/home/kark/Desktop/1.txt"}]}';
sprintf('%s/job/%s/buildWithParameters', $baseUrl, $jobName);
$curl = curl_init($baseUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$response=curl_exec($curl);
curl_close($curl);
?>
上面的代码成功触发了Jenkins上的作业。作业输出如下。
Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/file/workspace
Finished: SUCCESS
但不上传文件。 $ response打印显示所有作业状态的响应