我想做一个非常简单的事情 - 对于在我的repo下创建的每个新的pull请求,我想用similer配置创建一个新的jenkins作业(运行一些批处理),这将检查正在进行的分支合并(不是目标分支)。
我还希望在拉取请求获得批准后删除此作业,但这并不重要。
我该怎么做?我发现的每个jenkins插件都为我的所有分支创建了作业,或者为指定的分支列表创建了作业,而不仅仅是新的或仅仅是未合并的拉取请求
答案 0 :(得分:2)
以下是解决此问题的一种方法:
答案 1 :(得分:0)
这与我们在团队中所做的非常相似(我们有超过10个开发分支机构,也有很多发布分支机构)
我认为最简单的方法如下:
应该使用插件:
gerrit trigger plugin 用于在有新提交时触发
job dsl plugin 用于根据dsl脚本生成作业
build flow plugin 用于定义执行流程
创建Jenkins构建流程作业“EntryPoint”(如果有新的提交推送进行审核,将触发此作业)
创建作业生成器作业(此作业将调用作业dsl脚本以根据输入参数生成模板作业,例如分支)
创建一个新工作来进行清理工作,或者正如Daniel所说,你可以用groovy post build做到这一点
在构建流程作业中,一个简单的流程如下
//Get current branch from gerrit trigger plugin
def currentBranch = params[GERRIT_BRANCH]
//Invoke job generator job and pass the branch info to it
build ("job_generator",BRANCH:currentBranch )
//Invoke the generated job by job_generator
build("$currentBrnch_Build")
//Remove the generated job
build("CleanUpJob")
答案 2 :(得分:0)
好的,我终于成功了,而且我认为它更容易了。我发现了一个叫做#34; Bitbucket pullrequest builder插件的jenkins插件,它使得为拉取请求构建作业变得非常容易。唯一的问题是,我无法让它与任何OAuth消费者合作,并且必须给它自己的凭据。但除此之外,它的工作非常精彩。