是否有一种独立于平台的方式在Jenkins中运行Perl / Python / Ruby脚本?

时间:2016-12-17 06:47:59

标签: jenkins

见标题。目前,我使用Linux上的shell 要么在Windows上使用CMD 运行脚本。这对我来说似乎有点不灵活,因为它限制了在Linux上上运行 的作业。

如何定义一个只运行我用Perl / Python / Ruby / WhateverOtherScriptingLanguage编写的测试脚本的作业,无论Jenkins实例运行的是哪个操作系统。

当然,可以假设正确的脚本解释器已安装。

2 个答案:

答案 0 :(得分:2)

插件中包含用于将实际调用包装到解释器的插件。使用插件,您可以独立于特定于操作系统的shell。但是,该插件将是特定于语言的,例如,

  • 对于Python,ShiningPanda plugin很受欢迎
  • 对于Ruby,Ruby plugin将执行此操作(尽管仅适用于嵌入式脚本)
  • 对于Perl,没有这样的东西

在任何情况下,您都依赖于其他插件的可用性和维护。另外,为Jenkins添加胖插件只是为了包装系统调用有点尴尬。

我认为最通用和最紧凑的解决方案是引入 Groovy构建步骤,并从那里启动带有单行的解释器,例如:< / p>

"perl myscript.pl".execute();

这可以在任何平台上运行,只要您确保Groovy可用,例如使用Groovy plugin

如果您更喜欢Python,您可以使用ShiningPanda plugin启动的短包装器执行相同的操作。

答案 1 :(得分:-1)

Jenkins中的Shell脚本提供跨平台的she-bang。

#!perl
print "hi"

将在linux和windows上运行,perl应该在PATH中。

UPD。实际上我们已经在Windows主机上安装了shell,所以没有它就可能无法运行。