2012-05-21 43 views
2

我目前使用jenkins在预期的发布条件下部署应用程序,并且我被迫以root用户的身份在部署的系统上运行JUnit测试因为应用程序具有某些只能由根用户访问的文件)。构建步骤:“调用蚂蚁”与“从shell运行蚂蚁”

而不是使用“援引蚁族”生成步骤来运行测试中,我运行ant使用sudo从“执行shell”盖步,像...

sudo ant -file build.xml -D.... test 

因为詹金斯用户具有必要的根权限来执行此操作,但不能访问上述文件。

我意识到这样做会在工作空间中创建一些文件夹,但其权限不正确,但是我从“执行shell”之后进行了更正。

一切似乎都很好,但感觉就像是一种解决方法。

我的问题是,有没有这种方式运行蚂蚁相比,生成步骤“调用蚂蚁?”有什么缺点?...或任何人都可以看到一个更好的方式做到这一点?

+0

我应该补充说我对windows没有任何顾虑。它纯粹是在Linux上测试(Rhel 6)感谢所有的输入。有几位专家给出了一些意见,感觉有点安全。欢呼 – Englishbob

回答

0

詹金斯翻译“援引蚁族”有一个shell命令,你可以检查此观看构建的控制台输出,所以如果你已经解决了你的问题,你说的方式,我认为这是同一

+1

感谢您的快速回复。是的,这就是我通过观察类似工作的输出而得出上述解决方案的方式。但是,我只是觉得可能会有一些反响。 – Englishbob

0

使用如果一切正常,蚂蚁从外壳看起来并不成问题。正如你所提到的,修改后的文件权限可能是执行后的问题。

1

ANT构建步骤背后的主要思想是它提供跨平台的一致性。所以你应该尽可能地使用它,以避免“配置地狱” - 在不同配置数量的组合爆炸。然而,有时候,男人必须做一个男人必须做的事情。

1

鉴于您的限制,我认为您的解决方案就好。

要回答你的问题:

...is there any disadvantage of running ant in this manner...? 

出现在脑海的主要之一是,如果你有一个分布式部署詹金斯,有些奴隶运行Windows,有的奴隶运行UNIX,那么这显然不会工作(或者至少需要更多的工作 - 例如安装/配置Cygwin)。但我不认为这是你真正关心的事情。

可以说是更干净的替代解决方案是建立一个以根用户身份运行的Jenkins从服务器(如果需要的话,还可以在Windows上使用“Administrator”)并将工作绑定到它,坚持为您“调用Ant”Ant调用。但是这需要更多的工作来建立,可能不值得付出努力。