我希望个人用户能够将回购路径发送到哈德森服务器并让服务器启动该回购的构建。我不想留下动态创建的作业配置的踪迹。我想开始同一个工作的多个同时实例。显然,这要求不同实例的工作空间不同。我相信使用任何当前扩展都不可能。我对我正在努力实现的目标采取不同的方法。
我只是希望哈德森服务器能够从外部源接收构建请求,并且只要有免费执行程序就启动它们。我希望构建配置对于除repo位置之外的所有构建都是相同的。我不想让几十个相同的工作围绕着自动生成的名字。
有没有人使用Hudson或Jenkins这样的事情?你是如何设置它的?我想有足够的脚本,我可以通过脚本中的CLI API动态创建必要的作业配置,然后在完成后将其销毁。但我想保留工件,因此在完成运行时销毁工作是一个问题。我真的不想写和维护我自己的扩展。
答案 0 :(得分:5)
这应该非常直接与Jenkins一起使用而不需要任何插件,但这取决于您使用的SCM的类型。
无论如何,哈德森的价值upgrading;自从成为Jenkins以来,在许多版本中支持您的用例所需的功能肯定有所改进。
您希望将repo路径作为参数传递给构建,因此您应该在构建配置中选择“This build is parameterized”选项。在那里,您可以添加名为REPO_PATH
或类似的字符串参数。
接下来,在指定代码签出位置的位置,将路径替换为${REPO_PATH}
如果您从脚本中检出代码 - 或者需要访问repo路径 - 该变量将自动添加到您的环境中,因此您可以从shell脚本或Ant文件中引用${REPO_PATH}
。
此时,当按立即构建时,系统将提示您在构建开始之前输入一个repo路径。如上面的维基页面所述,您可以调用buildWithParameters
网址直接使用所需参数启动构建,例如http://server/job/myjob/buildWithParameters?REPO_PATH=foo
最后,如果您希望构建同时执行,Jenkins可以通过为并发构建创建临时工作空间来为您管理。只需启用该选项 在作业配置中“必要时执行并发构建”。
工件将可用,与任何其他Jenkins构建相同。虽然可能你想管理最近保存的工件数量;这可以通过选中“Discard Old Builds”来完成,然后在 Advanced ... 下,您可以选择输入“Max#of builds with artifact with artifacts”。