代码部署在 Bitbucket 等环境中就只能通过轮询的方式来触发 Build。那么有没有办法通过 Bitbucket 的 Webhooks 功能在开发人员提交代码时触发 Build 呢?答案是肯定的,并且有很多种实现方式。
添加用来触发 Build 的用户
Manage Users 界面中点击 "Create User":
用户信息并创建用户,笔者创建的用户名称为 autobuilder。
用户的权限
用户,只有先赋予一定的权限,它才能够系统中的 Build。 Configure Global Security 配置界面,在 Authorization 的配置项中选择 "Matrix-based security",然后把 autobuilder 用户添进来:
功能。进入 Project 的配置界面,在 "Build Triggers" 下面选中 "Trigger builds remotely":
生成一个合格的 Authentication Token。
内容就是一个可以触发 Build 的 URL 模板。接下来我们用 Jenkins 服务器地址替换模板中的 JENKINS_URL,用实际的 Authentication Token 替换模板中的 TOKEN_NAME。得到的 URL 为:
用户登录到 jenkins 服务器中,点击右上角的用户名称进入用户信息界面,然后点击 "Configure" 进入配置界面。点击 API Token 小节中的 "Show API Token" 按钮:
》。
登录主机 xxxengine.eastasia.cloudapp.azure.com, 在 SSH 服务器的@R_301_382@ /etc/ssh/sshd_config 中添加一行:
用户 nick 建立到主机 xxxengine.eastasia.cloudapp.azure.com 的 SSH 连接。选项 fN 则让该远程转发以后台方式运行。登录到主机 xxxengine.eastasia.cloudapp.azure.com 上,执行 ss -tunl 命令查看端口的监听情况:
Webhooks" 进入 Webhooks 的配置界面。添加一个新的 webhook 配置,并且把我们在前面创建的最终版的 URL 设置其 URL:
代码库中提交代码,Bitbucket 在收到代码推送后会使用我们在 webhook 中设置的 URL 发送 http 请求。结果内网中的 Jenkins 服务器收到请求触发一个新的 Build。
内容 Jenkins 的访问。解决。