本篇介绍有关jenkins项目依赖的插件parameterized trigger plugin等。
先表明我们的需求是需要使用git parameter,这个插件的好处是可以在参数化构建前,将项目所
有分支同步过来然后选择分支构建,方便进行版本控制。


一、git parameter使用

git parameter在github上地址:https://github.com/jenkinsci/git-parameter-plugin
在jenkins上安装插件以后,选择参数化构建就可以使用。
需要注意的是:

1
2
3
1、Parameter Type==》Branch 或者 Tag等,目前使用Branch
2、Branch Fiter==》正则匹配,可以过滤掉不希望显示的分支,
3、目前为了过滤sandbox,使用表达式^((?!(sandbox)).)*$

在使用git parameter之后,遇到了一个坑,因为在打iOS的包的时候,使用了Multiple SCMs来
拉取代码的,发现在使用过程中遇到,选择Build with Parameters时候,Branch出现报错提示为:
!No Git respository configured in SCM configuration,原来git parameter这个插件不能支持Multiple SCMs,已经提了issue,开源作者貌似没动静。

二、parameterized trigger plugin使用

parameterized trigger plugin可以用来传递不同job一个文件名或者路径,这个时候我们不需要传递文件实体,那这个路径如何传递呢?比如有如下两个项目,我想把A的工作目录传递给B,让B使用。 操作流程分为两步:
1、在Ajob内的操作:


A项目中配置
如图所示:我将A项目的工作目录传递给了自定义参数TEST_WORKSPACE.到这里A项目的配置就完成了。
2、在Bjob内配置:


B项目中配置
我们在A项目配置的TEST_WORKSPACE参数,如果在B job中使用,首先我们在配置界面中,勾选The build is parameterized。这样我们就在当前工作环境中得到了由A传递过来的参数。

三、Multijob Plugin插件

这是一个集成了ParameterizedTrigger和BuildPipeline的插件,但它是形成一个新的job,而不是一个视图。并且它不要求job之间本身就存在依赖关系。这样一来,建立job的时候可以保持相对的独立性,而通过这个插件来组装成产品所需要的持续集成环境。
需要注意的是:在创建job时一定要选择“MultiJob Project”,在“free-style project”下默认
是不能选择使用这个插件的。
如图所示我集成了Multijob之后,新建了两个下游项目。


Multijob展示
配置如下:


Multijob配置两个job

需要在两个下游job中配置一下参数,就能引用Multijob中的参数:


job配置两个job

四、Join Plugin插件

这也是一个触发job的插件,亮点在于它触发job的条件是等待所有当前job的下游的job都完成才会发生。当然,只有在当前job有两个及以上的下游job时才有意义。简单举个例子来说,A同时触发B1和B2两个job,然后配置这个插件又触发C,这时C就会等B1和B2都完成之后才会被执行。
需要注意的是:默认情况下,通过Join插件触发的job是不能传递参数的,如果有需要,可以勾选“Trigger parameterized build on other project”,这样其实就是把Join插件和
ParameterizedTrigger插件集成起来了。


Join配置job
当然同样需要在下游job中配置一下参数化构建,才能引用Join中的传递的参数。

五、命令行直接git clone代码

最后发现,这些插件都不能满足项目要求,最后无奈只能选用命令行git clone代码的方法,可以通过ssh(key file)或者https(.netrc),当然我们的项目代码都是ssh,所以直接git clone ssh://xxx即可,当然,
需要在构建环境中选择SSH Agent确认Credentials。


简单记述,以便整理。。。。。