我需要一个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吗?在这种情况下,我该怎么办?
答案 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"');