为Jenkins配置Git触发器? (使用TFS2017)

时间:2018-04-13 18:08:50

标签: git jenkins groovy tfs triggers

情景:

  1. TFS2017团队项目

  2. 150-200 Git存储库

  3. 每个存储库都有10-30个分支

  4. 我们希望将Jenkins纳入我们的工作流程,以帮助TFS构建和外部部署&试验。我们需要一个Jenkins作业来触发Git代码推送,这很简单。需要有传入作业的登记信息,如果它以参数的形式或类似HTTP POST的有效载荷而无法关注,其中包括基本信息,如分支名称,存储库名称/ URL因为我们为所有存储库和分支使用了1个Jenkins脚本管道,所以我们不希望将1个单独的Jenkins文件签入到300多个分支中,这些分支需要在需要对管道进行更改时更新每个分支。

    我们的尝试:

    1. TFS Jenkins Service Hook to Jenkins Pipeline项目:不传递动态参数(分支/仓库名称),也无法将有效负载检索到管道脚本中。

    2. TFS Jenkins Service挂钩到Jenkins Multibranch项目(借助" Pipeline:Multibranch with default" plugin):在TFS Service Hook中,使用"触发器通用构建&# 34;我们必须为每个Service Hook单独指定Multibranch / repobranch作业名称,或者如果使用" Trigger Git build"选项它会触发所有Multibranch分支'同时建立。

    3. TFS Jenkins Service挂钩到Jenkins多配置项目:无法指定Jenkins项目运行的Jenkins文件。

    4. TFS Generic Web Hook任何Jenkins项目:Crumbs错误规定了这种可能性。

    5. 如果我们错过了上述尝试或完全不同的方法,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果有人遇到同一问题,答案/解决方案:

现在我们将在Jenkins中禁用CSRF并使用#4。使用Generic Web Hook插件,我们可以指定使用TFS发送的通用Web Hook的传入有效负载中的JSONPath的变量。

当这个项目充实时,我们将编写自己的服务来监听TFS Generic Web Hook请求,然后获得一个面包屑,然后将正式的HTTP Post发送到它监听的Generic Web Hook Plugins默认URL(与Jenkins&#CSR;启用CSRF。)

相关问题