`

构建基于Jenkins + Github的持续集成环境

 
阅读更多
搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境
才能让我们少走很多弯路。持续集成(Continuous integration)简称CI,是一种
软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进,不必等
到开发的后期才寻找和修复缺陷。当然要明白的是持续集成环境的搭建也不是一
劳永逸的,随着软件项目复杂度的增加,持续集成的环境同样要加以维护以确保
集成环境的可靠性。
持续集成的重要要素:1.统一的代码库。
2.CI服务器
3.自动化测试和构建的脚本
4.Slaves
持续集成的流程:CI服务器控制持续集成的整个过程,轮询代码库更新,
根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端。
这就是整个持续集成的过程,我们需要根据我们的项目需求,
制定好一个完善的持续集成方案,然后根据方案选择CI服务器和版本管理软件,
我们的项目选择了Jenkins+Github的持续集成环境,
这也是我要主要和大家讲述的。
为什么要选择Jenkins?
Jenins是现在非常流行的持续集成CI服务器,这与它的前身Hudson也有着很大的
关系,Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,
而且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,
这些都是Jenkins相比其他持续集成服务器的优势所在。
对于版本控制软件的选择要看项目需要了,可能是SVN也可能是Git,
一般来说Jenkins都有提供插件支持,
下面讲解一下Jenins+Github持续集成环境搭建的细节。
这个持续集成环境构建的主要流程就是Jenins会在后台运行,
轮询版本控制的存储库,当发现版本库出现变更,
就会通过预定义的构建脚本进行项目的构建,
Jenkins会根据项目需求将构建的任务分配到Slave端。
一般的项目构建过程主要分为自动化编译和自动化测试两个阶段,
这同样是你脚本发挥作用的阶段。
1.Jenkins安装
进入Jenkins官方网站下载最新的Jenkins,
Jenkins提供war包的下载和各种操作系统的安装文件,选择war包即可。
Jenkins的启动方法有两种:
第一种是使用tomcat直接打开,就是把jenkins.war放入tomcat下的	
webapps目录下,当启动jenkins时,就会自动在webapps下建立jenkins目录。
然后再浏览器的地址栏输入http://localhost:8080/jenkins
另一种方法要确保系统中安装了jdk,并且配置了环境变量,
检测方法就是在命令行输入java回车后有多行的命令符提示。
直接在命令行输入java -jar jenkins.war即可启动jenkins,
默认会运行在8080端口,切换到浏览器的地址栏输入http;//localhots:8080,
localhost可以改成ip地址。
看到Jenkins的页面说明jenkins已经部署成功了。

2.插件安装
在"系统管理->插件管理"下可以看到Jenkins缺省安装了CVS,Subversion,
Maven和SSH,这些主要是版本控制的软件的相应插件,
不过我们使用的是GitHub进行版本控制,
所以要在可选插件中选择安装Git plugin和GitHub plugin插件,
安装之后重新启动就可以看到新的插件已经生效。

3.环境配置
进入"系统管理->系统设置"设置Jenkins的相关参数。
主要是设置Git和GitHub插件的参数,
在Git下的Path to executable一栏添加本机的git.exe的路径,
在Git plugin下的添加本地Git的user.name和user.email的信息,
在GitHub Web Hook下添加GitHub账户的相关信息。
如果想要使用邮件的功能,需要在邮件通知的一栏添加SMTP服务器和邮箱
的相关信息,添加后点击Test的按钮测试一下能否正常发送邮件,
这一功能可以在后面的项目中使Email Notification功能得以正常使用。
	
4.构建项目
点击"新Job",输入"任务名称",选择"构建一个自由风格的软件项目",
点击"OK"。系统自动进入"任务配置"界面。

5.配置构建方法
在GitHub project中输入git地址。

在"源码管理->Git"下的Repository URL输入Repository的Git地址
(PS:可以选择分支)。
	
在"构建触发器"中选择"Build when a change is pushed to GitHub "
和"Poll SCM ",这两项的作用分别是当GitHub有版本库更新时触发Jenkins
进行构建和定期检查版本库是否有更新,如果有更新则触发Jenkins进行构建。
这里要注意Schedule语法,例如"*/2 * * * *"表示每隔2分钟检查一次。
	
点击增加构建步骤,选择Execute Windows batch command,并输入
"%VS10COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" 
/Build "Debug|Win32",devenv.com是MSVC提供的命令行构建工具,
这里的"%VS10COMNTOOLS%..\IDE\devenv.com"为devenv.com的路径,
如果没有配置响应的环境变量,构建的时候就会找不到路径,
所以可以用devenv.com的实际路径代替。
在"构建后操作"中可以添加发送邮件的相关信息。
	
点击保存,项目的配置就完成了,点击立即构建,Jenkin就会从github上将代码
clone下来,这里我在github上存放了一个HelloWorld的vs项目,
所以我的命令行为
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
devenv.com" "%WORKSPACE%\HelloWorld\HelloWorld.sln"
 /Build "Debug|Win32",然后自动编译项目,如果构建成功会是蓝色标记,
如果构建失败会是红色标记。
	
构建完成后可以在项目中看到项目构建的具体信息,如工作区、
变更集和每次构建的控制台输出等。这就是一个基本的基于Jenkins和GitHub
的持续集成环境的搭建。

Tips: 1.对于刚接触Jenkins的同学可能有很多需要配置的地方不知道要怎么填,
这时可以点击每一个填空后的?,就会弹出详细的提示。
2.官方的wiki是很好的入门教程
https://wiki.jenkins-ci.org/display/JENKINS/Home
3.多多实践,多多查看Jenkins配置的使用方法~~
以上我说的方法都是比较简单的方法,可以方便你快速进行搭建,
Jenkins的搭建有很多种方法,例如使用Tomcat,Java web等等,
我在资源栏上传了一本英文版的介绍Jenkins的书,是官方推荐的书籍,
讲的很详细,需要的可以去下载。另外Jenkins相关的资料非常少,
想要快速解决自己遇到的问题的话可以去freenode的#jenkins这个频道,
里面有挺多jenkins方面的专家,
遇到一些不懂的问题或者是你不知道是否能实现的问题他们都能给你提供
很好的建议。

转自:http://blog.csdn.net/john_cdy/article/details/7738393


分享到:
评论

相关推荐

    Jenkins持续集成maven+jmeter+git接口自动化测试框架.pdf

    背景:jenkins作为中央调度器,集成java、maven、git、email、html-report环境,搭建 一个自动化测试框架,可性能也可接口;maven负责项目管理,jenkins服务器就不需要安 装jmeter运行环境(错误的,maven项目配置...

    jenkins持续集成环境搭建步骤

    jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接...

    jenkins_github_drupal, 在Github上,通过一个新的拉请求创建一个Drupal站点.zip

    jenkins_github_drupal, 在Github上,通过一个新的拉请求创建一个Drupal... 你使用Jenkins自动化 持续集成? 那么你应该做所有这些事情 ! 这些脚本将构建存储库的分支,以便在完整的Drupal环境中测试它们。 不再对分

    DotCi:DotCi Jenkins github集成,.ci.yml http:groupon.github.ioDotCi

    DotCi-Jenkins github集成.ci.yml。 使诸如travisci之类的云ci系统的构建配置变得容易,并将docker的运行时环境配置简化给jenkins。 + + ###执照 The MIT License (MIT) Copyright (c) 2014, Groupon, Inc. ...

    使用Jenkins配置Git+Maven的自动化构建

    Jenkins是一个开源的持续集成工具,应用Jenkins搭建持续集成环境,可以进行自动构建、自动编译和部署,非常方便。在服务器比较少的情况下,Jenkins的优势并不明显,但是随着项目发展,服务器数量的增加,Jenkins的...

    Zoo Admin - 在线 zookeeper管理工具,基于Jfinal+Beetl开发。.zip

    Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据...

    一个 Jenkins library 库轻松集成实现各个代码平台的 CI/CD 流程

    ManCI 是一款专为中国开发者社区打造的 Jenkins 流水线自动化框架,旨在应对当前 CI 过程中的挑战,借鉴 GitHub 的 CI 工作流最佳实践,并通过 Jenkins 库的形式,无缝对接国内广泛使用的代码托管平台——Gitee,为...

    Jenkins集成JMeter接口自动化框架-补充说明.pdf

    3、第一步先是环境的准备,优先本地调试通过,再持续集成自动构建,也就是服务器的迁移。 4、再次搭建接口自动化平台,总会遇到的之前没遇到过的问题: a> eclipse创建maven项目后,从原来本地调试的github拉取配置...

    通俗易懂的自动化部署Jenkins教程

    本教程不但介绍了持续集成、持续部署、持续交付这些相关概念,还介绍了基于Jenkins搭建持续集成环境的操作过程。配套的版本控制系统分别使用了SVN和GitHub。本教程需要Linux前置知识,要求对Maven构建管理和版本控制...

    Lesson8Practice3_JenkinsPipeline

    基于Docker打造Jenkins Pipeline练习描述按以下步骤打造基于Docker的Jenkins Pipeline:在 Docker 中安装 Jenkins 镜像()在 Jenkins 上搭建 Pipeline()在 github 配置 webhook 对 Jenkins 进行持续集成()本地...

    docker-jenkins

    在 github 配置 webhook 对 Jenkins 进行持续集成() 本地编写 Jenkinsfile,进行构建和测试() 环境描述 java8 Intellij-IDEA Docker Jenkins 如何开始 在用户本地任意目录下clone此题目库 按照需求完成练习...

    lambci:基于AWS Lambda的持续集成系统

    LambCI是一个可以上传到的程序包,当您在GitHub上推送新代码或打开请求请求并在Lambda环境本身中运行测试(与Jenkins,Travis或CircleCI相同)时触发。 它与Slack集成,并在GitHub上更新您的Pull Request和其他...

    基于 Spring Boot+MINA 开发的一个推送工具.zip

    Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据...

    sysdig-demo-master2

    使用Jenkins在Kubernetes上配置CI / CD 介绍 DevOps鼓励开发人员和运营团队之间的协作,合作和沟通,以提高软件开发的速度和质量... 使用GitHub Webhooks集成GitHub和Jenkins 先决条件 创建一个免费的 安装 下载并安装

    k8repo

    使用Jenkins在Kubernetes上配置CI / CD 介绍 DevOps鼓励开发人员和运营团队之间的协作,合作和沟通,以提高软件开发的...使用GitHub Webhooks集成GitHub和Jenkins 先决条件 创建一个免费的 安装 下载并安装 创建一个 安

    artifactory-plugin:Jenkins人工插件

    该插件将Jenkins和Artifactory集成在一起,以发布,解决,促进和发布可追溯的构建工件。 有关更多信息,包括发行说明,请访问 如何贡献 JFrog欢迎社区通过拉动请求做出贡献。 重要的: 插件代码存储在两个github...

    godemo:Golang学习演示

    gitlab使用webhook触发jenkins启动持续集成 jenkins从gitlab拉取代码,并自动配置编译环境 jenkins进行go项目自动代码测试 jenkins进行go项目构建打包 jenkins调用远程docker,把go项目编译包打包成docker镜像 ...

    Jenkins-SourceGuard:具有SourceGuard集成的CICD Jenkins管道,用于源代码和docker图像扫描-docker source code

    使用Jenkins管道作为代码使用... SecOps团队正在采用DevSecOps在CI / CD工具链中本地集成安全工具,以确保在将其应用程序部署到生产环境之前,其应用程序的构建和运行时的安全性。 本页将介绍如何将Check Point Sou

    基于 OAuth2.0 协议的跨域认证授权开发套件.zip

    Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据...

    基于spring boot搭建的web基础框架.zip

    Jenkins、Travis CI、GitHub Actions等工具负责自动化构建、测试和部署流程,提高交付效率和可靠性。 数据库管理与ORM工具: 数据库客户端工具用于连接、查询、更新数据库,ORM(对象关系映射)工具简化了数据...

Global site tag (gtag.js) - Google Analytics