我对hudson构建系统很新。我目前的构建是从perl / cgi脚本的组合运行的,能够从浏览器启动。我需要的是哈德森能够从perforce签出文件(可以做到这一点),解析该文件(我可以为此编写脚本)并根据解析结果给予用户选择各种不同选项的能力什么构建(编译)。这可能吗?我不确定我是否应该把几个不同的项目联系起来做这个或不做?任何有关这方面的想法都会非常有用。
答案 0 :(得分:1)
Hudson是一个持续集成(CI)服务器。所有CI服务器都有一个共同点,它们可以帮助您自动化构建过程,这样您就不需要进行用户交互。除了构建之外,您还可以添加单元测试,功能测试,代码分析,打包您的解决方案.....显然,CI的概念无法满足您当前的需求或期望(至少如果您打算使用它的方式)它本打算用于)。
我是你的情况我会仔细研究你的构建过程,并弄清楚过程的设计是否可以完全自动化。使用CI解决方案构建所有内容完全可以,即使需要一段时间。这样,您就不需要用户交互,如果组件损坏(CI的实际目的),您现在就可以立即使用。请务必调查所有Hudson plugins。根据构建参数实际更改的频率,您可以在一个作业中运行矩阵构建和构建参数的所有可能(和有效)组合。不用说,在触发工作之前,需要知道可能的选项。
您想要做的一个(很多)可能的解决方法可能是有两个作业,第一个从每个力检出文件并创建一个带有可能选项的HTML页面并将其存储为工件。 HTML页面允许您在Hudson中选择您的选项和triggers on your request a second job。所选选项将作为一个(或多个)参数传递到第二个作业。这比根据传递给它的选项构建项目。您还可以使用remote API更改第二个作业配置,在这种情况下,可用选项将在第二个作业中设置为选项参数。当您手动触发第二个作业时,您只需设置您选择的参数即可。这是一个丑陋的解决方法,我不推荐它。
答案 1 :(得分:0)
不,没有办法。 Hudson旨在无需用户交互即可运行。这就是重点 - 您可以设置按计划运行的作业,也可以在签入代码时运行。
不要求用户交互,而是为最常见的任务创建单独的作业。这样他们就可以点击任何适合他们需要的工作。
答案 2 :(得分:0)
您可以使用Hudson参数化构建 - 应该有一个复选框,允许您选择构建参数化并添加参数。
当然,这不会让你从构建本身获取参数列表,因为它无法展望未来,但如果你知道它们将提前发生什么,你可以让它们通过从Hudson到适当时候的脚本。
http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Build