关于jenkins自动构建job的问题

kingzfan 发布于 2015/09/16 18:37
阅读 1K+
收藏 0

@Crazy_Coder 你好,想跟你请教个问题:

背景: 公司目前在构建ci平台,其中用到了jenkins+maven,目标是想实现job的自动化构建,减少人工干预。
正常情况下:
svn分支的路径为: 
http://xxxxx.com/svn/branches/具体分支名/
svn分支具体应用的路径为: 
http://xxxxx.com/svn/branches/具体分支名/具体应用模块 
例如:http://xxxxx.com/svn/branches/1-150815app/
      http://xxxxx.com/svn/branches/2-150915app/report
具体的应用指的是里面会有一个pom.xml文件。

公司的流程是QA,通过某个系统,确认分支生效,把分支的url(这个路径没有具体应用名字)保存在数据库里面,然后,该分支下的所有模块(应用),就要通过jenkins,建立对应的job ,就是对report 建立对应的job。

先说下我的处理过程:我在jenkins里面创建了一个定时任务,每隔一段时间执行如下步骤(groovy脚本)。
1,访问下数据库,若是当前日期建立的分支,就把分支的路径提取出来,如:..../.../1-150815app。
2,调用svnkit API 扫描一下当前分支下面有多少应用,例如 report1 report2,判断的方式是 :report1
下面有pom.xml文件,说明该应用模块,是需要建立job的。
3,调用hudson API ,创建对应的job

现在呢,碰到一个问题:关于svn分支的问题。
刚才我说了正常情况下是什么样的,还有不正常的情况,如下:
svn分支的路径为: 
http://xxxxx.com/svn/branches/具体分支名/
svn分支具体应用的路径为: 
http://xxxxx.com/svn/branches/具体分支名/文件夹1/文件夹2/.../具体应用模块 

1)就是说,有些项目组,不按照套路来,多建立了一些他们认为有用的目录,导致具体应用的目录太深了,
而我,调用svnkit API 仅仅扫描一下当前分支下,看有没有应用模块。更深的目录就没处理了。
我知道svn的API可以指定相关的搜索深度,但是 项目组自己建立目录,我不知道他们要建立几级文件夹,
深度是未知的,当然最多不超过三级目录。 

2)还有就是公司系统很多,分支很多,应用很多,我上面可是建立了一个jenkins的定时任务

(跑我自己用groovy脚本实现的上面三个步骤),跑的时候,很慢,svn扫描不是很给力。
3)跑脚本的时候,遍历目录太深,出现问题很难排查

所以,我想询问下,有没有简单且有效的,扫描出 含有pom.xml 文件的模块 的svn路径,万分感谢!

加载中
0
ddatsh
ddatsh
不用GIT的项目统统死掉
k
kingzfan
貌似后期会改用。。。
0
双_双
双_双
约定大于配置,不按套路来的项目自行改造
k
kingzfan
我也是这么认为的。。。(^_^)
0
jeffsui
jeffsui
约定大于配置,团队必须要遵守
k
kingzfan
有道理,但是,协调起来困难重重额,谢谢你的回复! (^_^)
0
fredfeng
fredfeng

为每一个项目都建一个job不就行了

返回顶部
顶部