在Jenkins上不使用插件进行Git系统Webhook触发集成

最近使用到Jenkins来进行持续集成,代码库在自建的Gitlab上,而Jenkins里已有提供GitLab Plugin插件,很方便地就完成了部署。但是若使用其它的例如阿里云Code和腾讯云TGit系统却没有对应的插件,网上也没有好的解决方案。尝试使用过Generic Webhook Trigger Plugin,但是多个项目都使用的话,会把所有项目都触发构建。

因为我的需求比较简单,只需响应Push请求然后拉取代码发布到FTP上,后来决定直接使用“触发远程构建(例如,使用脚本)”这个系统自带触发器,步骤如下:

  1. 由于我的Jenkins系统设定了必须登录,触发时需要身份验证,于是新建一个Jenkins用户用于Webhook,赋予Overall Read、Job Create&Discover&Read权限(也可使用管理员帐号,但是为了系统安全,还是建了一个低权限的帐号用于Webhook)
  2. 在项目配置的构建触发器中勾选“触发远程构建 (例如,使用脚本)”,由于使用Webhook时直接登录帐号,身份验证令牌可不填。记录下Use the following URL to trigger build remotely:后的URL即可。?token=TOKEN_NAME可省略
  3. 登录Git平台,在Webhook配置中填写上一步的URL并带上登录验证信息,勾选勾选Push events,最终URL类似于如下:

    http://*USERNAME*:*PASSWORD*@*JENKINS_HOST*/job/*JOB_NAME*/build

  4. 完成,当代码Push上Git系统时,Jenkins将执行构建