9

在 Hudson/Jenkins 中,是否可以用字符串参数替换 Subversion 模块存储库 URL 中的整个字符串?我不想只替换版本或类似的东西,我想替换整个 url。

因此,当我运行构建时,我会收到 URL 提示,我会输入类似“http://scm.work.corp/svn/com.work.package/tags/project-4.0.0 .RELEASE”,它会检查并构建它。

能够替换“com.work.package”和“project-4.0.0.RELEASE”部分也是可以接受的。我基本上希望它是一项可以构建任何版本的工作。

4

6 回答 6

11

是的你可以。但是你不能让 Jenkins/Hudson 监控 SVN 的变化。即使有适当的参数,这对我来说也不能正常工作。但是,如果您从没有参数化存储库 URL 的作业监视 SVN,让该作业触发下游作业,将整个存储库 URL 作为参数传递,然后让下游作业使用存储库 URL 参数,那么它似乎工作.

这就是我们为构建的东西所做的。我们有一项工作可以根据您开始工作的存储库 URL 从 SVN 构建产品。然后我们有许多监视某些分支的触发作业;当注意到更改时,启动构建作业并将其 URL 传递给它。

于 2011-04-22T13:44:44.633 回答
4

如果 Hudson/Jenkins 事先不知道 URL,那么如何进行持续构建集成?

而且,如果您不断更改 URL ,Hudson/Jenkins 如何进行更新?您必须让 Hudson/Jenkins 每次都重新结帐,或者让它使用该svn switch命令。

像 Hudson/Jenkins 这样的工具的全部目的是进行您想要阻止它进行的持续构建。既然您不进行持续构建,为什么还要使用像 Hudson/Jenkins 这样的工具呢?为什么不编写您自己的 Ant 脚本来检查您想要的内容然后进行构建呢?

每个分支和每个模块都应该有自己的 Hudson/Jenkins 作业,并且使用模板插件,您可以轻松地将一个作业复制为另一个作业的模板。因此,设置您需要的所有构建并不难。

于 2011-04-22T03:35:29.403 回答
3

Yes you can, I had the same issue but changed it to $VARIABLE and seemed to work the only issue was that you have to include a "." in the Local module directory. It took me a long time to find this out.

于 2015-02-17T11:28:32.523 回答
2

你可以做到,但你不能让 Jenkins 为你管理 svn。使用您的字符串创建一个参数化构建,然后在执行步骤中,执行svn co ${parameter_you_selected}您的构建步骤(调用 ant 脚本、makefile、rakefile 等)

于 2011-04-22T03:57:42.883 回答
2

我想我应该指定我的用例。

我理解哈德森的目的。我想要这样做的唯一原因是让 Hudson 为用户指定的版本执行单个构建,以便可以触发我们使用的插件(声纳),而无需在每个 pom 中添加它并将其附加到每个阶段。我们手动发布,所以我们不希望 Hudson 处理这个问题。但是,我们确实需要有关我们发布的声纳报告,因此需要这个用例。

However, this actually turned out to be easier than I expected. I simple did a parameterized build and put ${PARAMETER} in the svn repository url. Now, Jenkins given me an error saying that's an invalid URL, but actually doing the build works as I expected it. I'm glad I tried it out despite that error warning.

于 2011-04-22T14:15:01.617 回答
1

Yes you can. Check Building a specific SVN revision with Hudson. In this case it just parameterizes the suffix of the URL. In your case you need 2 params for "com.work.package" and "project-4.0.0.RELEASE".

Hope it helps!

于 2011-11-07T15:39:18.427 回答