是否可以将ruby脚本作为预构建步骤执行?

是否可以将ruby脚本作为预构建步骤执行?,ruby,jenkins,hudson,Ruby,Jenkins,Hudson,我想为我在Jenkins上的所有项目执行一个ruby脚本。每当我尝试在预构建步骤添加ruby脚本时,它都会导致构建失败,并返回以下错误: [workspace] $ ruby -v /tmp/hudson4496135006077199221.rb ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux] /tmp/hudson4496135006077199221.rb:1: unterminated regexp meets end

我想为我在Jenkins上的所有项目执行一个ruby脚本。每当我尝试在预构建步骤添加ruby脚本时,它都会导致构建失败,并返回以下错误:

[workspace] $ ruby -v /tmp/hudson4496135006077199221.rb
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
/tmp/hudson4496135006077199221.rb:1: unterminated regexp meets end of file
Build step 'Execute Ruby script' marked build as failure
目前,ruby脚本只有一个
print
语句,没有其他内容

然而,如果我将ruby代码放在提供的空间中,它就可以正常运行

在所有不需要的项目上粘贴ruby脚本会很麻烦

请让我知道是否有办法添加Ruby脚本文件

更新: 文件内容:
放置“Hello”

Jenkins预构建步骤中使用的命令:
ruby~/.sample.rb


谢谢

仔细研究后,无法指定Ruby脚本的路径。
相反,我编写了一个Rake任务并指定了Rakefile的路径。

可以执行任何类型的脚本。您可以编写命令,就好像您在终端中的任何位置一样,没有明显的理由不应该这样做


可能发生的情况是,您试图执行的文件不在那里。是不是必须编写
ruby~/sample.rb
而不是
ruby~/sample.rb
?如果不是这样,请尝试调试它。您可以将
ls
放在
ruby~/.sample.rb
之前,查看jenkins试图在哪里执行您的代码。

向我们显示文件的内容。@Anthony文件只有
放“Hello”
我知道我们可以编写任何需要在该框中执行的脚本。我觉得我们无法指定文件路径的原因是您在该文件中编写的内容被编译成一个临时文件,Jenkins将其作为ruby脚本执行。例如:
ruby~/.sample.rb
被编译到
[workspace]$ruby-v/tmp/hudson1715556226240775423.rb
Jenkins尝试将这些行作为一个ruby命令执行,但它不是。相反,我觉得詹金斯应该能够确定哪一个是脚本文件,哪一个是实际脚本。你能详细说明一下你是如何做到这一点的吗?您是否正在使用Hudson Ruby插件并从那里调用Rakefile?(如果是,具体情况如何,例如使用bundler?)