jenkins-监视svn分支

zu0ti5jz  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(412)

有没有办法让jenkins像git那样,在svn项目的所有分支中查找更改?
apachepig piggybank是由社区提供的一组类,并将exntesion添加到特定版本的apachepig中。pig本身是通过maven发布的,所以获得它的特定版本从来都不是问题。另一方面,piggybank没有版本控制,但是它所依赖的每个pig版本都有分支。
我想让Jenkins观察,然后建立,为所有分支在Pigsvn库。我真的不想一直盯着piggybank的新版本,为每个分支添加一个jenkins工作。

js4nwp54

js4nwp541#

您可以将多个存储库位置添加到单个项目中,并将它们 checkout 到不同的目录中。不过,您仍然需要手动添加所有分支。

mftmpeh8

mftmpeh82#

下面是一些关于@lars答案的阐述:
创建触发器作业(我们称之为触发器),将每个分支 checkout 到其工作区中的不同目录中(顺便说一句,您可以在工作区中使用 --depth=empty 选项,则subversion插件仍会检测到更改,但不会 checkout 代码(以防有很多分支)。
然后你可以使用 SNV_REVISION_n (其中 n 为1、2等。;请参阅subversion插件文档)在触发器作为构建步骤调用的脚本中检查哪个分支(或多个分支)已真正更改(当然,您需要存储结果,以便在下一个触发器构建中使用)。
然后只创建一个以分支名称为参数的作业(我们称之为worker)。触发器将通过带有wget的http或带有适当参数(例如分支名称)的curl调用worker。
或者,您可以为每个分支设置一个触发器作业,并使用参数化触发器插件调用worker。缺点是您需要为每个分支创建一个触发器,并且您将有更多的svn轮询(除非您使用svnpush)。另一方面,你不需要写一个脚本
检查哪个分支已更改,您可以使用subversion插件将更改集从触发器传播到工作进程(并且仅与该分支相关的更改)。
worker将手动更新/ checkout 作为参数传递给它的分支( svn co 等等)和建造。
这样你就只有一份工作可以完成实际的繁重工作(这意味着更容易维护,更少的bug等等)
我在构建系统中使用了这种方法。因为我们一次没有超过2个活动分支,所以我使用每分支触发的方法。

相关问题