用于创建新作业并在Jenkins中配置它的Perl脚本

时间:2015-03-31 09:39:08

标签: perl jenkins

我需要一个Perl脚本,通过该脚本我可以创建一个新作业并通过在脚本中提供参数来配置它。 我已通过脚本在Jenkins中成功登录。 如何从登录页面考虑响应并向服务器发出新请求?

因为使用

$request->url("$jenkins_url"); # 1st time for login

$request->url("$jenkins_url/view/All/newJob/"); # 2nd time for new job
$response = $browser->request($request);

多次(一次登录,第二次创建新作业),第二次出现404错误。

我应该考虑使用cookies吗?在这种情况下,我该怎么办?

2 个答案:

答案 0 :(得分:0)

我认为您需要查看Jenkins的CLI documentation

CLI是Jenkins的标准配置,可通过以下URL获取:

<jenkins_url>/cli/
  

您可以通过命令行访问Jenkins中的各种功能   工具。有关此功能的更多详细信息,请参阅Wiki。要开始使用,请下载jenkins-cli.jar,并按如下方式运行:

java -jar jenkins-cli.jar -s http://localhost:8080/ help

具体来说,您需要下载JAR文件(来自链接)并使用system命令将Perl连接到Jenkins:

 <jenkins_url>/cli/command/create-job

如果您指向浏览器,它将为您提供说明。

  

java -jar jenkins-cli.jar -s http://localhost:8080/创建作业名称
  通过将stdin作为配置XML文件读取来创建新作业。

NAME : Name of the job to create

运行Groovy脚本的工作示例

use strict; use warnings;

my $cmd = 'java -jar jenkins-cli.jar -s http://localhost:8080/jenkins groovy =';

my $groovy = "
['a','b','c'].each{
  println it
}
";

open F, " |  $cmd" || die "cannot open pipe: $!\n";

print F $groovy;
close F;

&#39; =&#39;等待在STDIN上发送Groovy。哪个是打印发送。

关闭文件(F)会发送一个EOF,以便CLI处理脚本。

我的Jenkins服务器位于localhost:8080/jenkins

如果您想要更多控制权,例如收集输出,那么您可以使用Bidirectional-Communication-with-Another-Process

中所述的|-

答案 1 :(得分:0)

通过使用jenkins-CLI,您可以配置新作业。但为此你需要有一个XML文件。如果没有XML文件,则无法创建新作业。

在Jenkins中创建新作业的Perl代码:

system('java -jar jenkins-cli.jar -s http://localhost:8080/ create-job job_name < "path to xml file"');