Jenkins 入门教程之四 Jenkins 与 Git 持续集成实战

上篇:Jenkins 入门教程之三 Jenkins 与 SVN 持续集成实战

Jenkins+GitHub 持续集成环境的搭建,与 Jenkins+SVN 持续集成环境的搭建很相似,下面只简单介绍 Jenkins+GitHub 的重点内容,额外的操作可参考上一篇文章。

Jenkins+GitHub 持续集成环境搭建要点

  • Jenkins 需要部署到外网上,因为内网地址 GitHub 是无法访问到的,可以租用阿里云等云服务平台
  • Jenkins 所在的主机上需要安装 Git,通过 Git 程序从 GitHub 上 clone 代码
  • 在 Jenkins 内需要指定 Git 程序位置,和指定 JDK、Maven 的位置类似
  • 在 GitHub 上使用 repository 的 WebHook 方式远程触发 Jenkins 构建
  • 在 Jenkins 内关闭 “防止跨站点请求伪造”

Jenkins 配置 Git 程序的位置

jenkins-config-git

jenkins-config-git2

构建任务中配置 Github 仓库的地址

jenkins-github-url

Jenkins 关闭” 防止跨站点请求伪造”

找到”Manage Jenkins” -> “Configure Global Security” -> “CSRF Protection”,取消勾选 “防止跨站点请求伪造”,然后保存设置。

jenkins-config-csrf

Github 配置 Webhooks

Github 配置 Webhooks 的目的是当 Git 客户端 Push 代码到 Github 仓库后,通知 Jenkins Clone 最新的代码到本地并进行构建发布。如果使用 Gitolite 搭建 Git 服务器,可以在 Git 仓库目录下的 hooks/post-update 钩子脚本中添加远程触发 Jenkins 构建的 CURL 命令。下面填写的 URL 是远程触发 Jenkins 构建的请求地址,将”example.com” 替换为 Jenkins 所在主机的外网 IP 或者域名,参数 token 的值是 API Token。关于如何配置远程触发 Jenkins 构建,详细步骤可参考看上一篇文章。完整的 URL 示例如下:http://example.com/jenkins/job/jenkins-study/build?token=yOEBc7Dcd4duKSNt
jenkins-config-github

验证 Github 的 Webhooks 是否正常工作

本地修改项目代码,然后 Push 到 Github 远程仓库,观察 Jenkins 构建任务页面左边的小窗口(构建历史)内是否有新构建历史出现,如果有则说明 Webhooks 正常工作。