我的目标是在 Unix 环境中编写一个 Perl 脚本,该脚本通过传递 Jenkins 主服务器的 URL 和其他参数来触发 Jenkins 构建/作业。怎么可能做到这一点?
以下是我的一些详细问题:
- 我需要哪些 Perl 库?
- 需要 Perl 中的哪些函数?
- 如何从脚本将其他构建参数传递给 Jenkins?
- 我如何从詹金斯那里得到结果?
您通常需要LWP模块,可能还需要它的子模块。这是一篇关于如何使用它的文章:
我通常会说“当你可以使用 Perl 解决方案时不要使用system
”。
但是,在这种情况下我会例外,因为只需对wget命令进行一次系统调用就更容易了:
system qq(wget -q $build_trigger_url);
将参数传递给 Jenkins 构建将涉及通过修改%ENV
哈希设置环境变量,或者通过修改 URL 以包含这些参数(通过 GET 请求)。不同的插件和配置需要不同的方式来做到这一点。
如果你的构建机器是 Windows 系统,你可以下载wget命令。
Jenkins 有一个内置的 RESTful API。只需单击每个页面底部的REST API链接。您可以使用REST::Client模块进行 REST 调用,但也可以只使用system
对的调用wget
。
RESTful API 将以 JSON 或 XML 格式返回数据。您应该获得一个 JSON 或 XML 模块来帮助读取这些数据。有时,RESTful API 会返回纯文本,例如获取最新的内部版本号或时间戳。