`

构建基于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+GitHub实现C项目的集成开发

    2. **持续交付**: 如果配置了部署步骤,每次成功构建后,Jenkins会自动将软件发布到目标环境,实现快速迭代和交付。 3. **错误通知**: 对于失败的构建,Jenkins可以通过邮件或Slack等方式通知团队成员,便于及时...

    Java项目包 Jenkins+Maven+Gitlab+Tomcat 自动化构建打包、部署

    1. **Jenkins**:Jenkins 是一个开源的持续集成(CI)服务器,可以自动化各种软件开发任务,如编译、测试、部署等。在这个场景下,Jenkins 监听 Gitlab 仓库的代码变更,一旦检测到新的提交,就会触发构建流程。 2....

    Windows平台搭建Jenkins+maven+git实现自动发布已经越过几道坑

    ### Windows平台搭建Jenkins+maven+git实现自动发布的知识点 #### 一、环境准备与配置 在Windows平台上搭建Jenkins+...随着经验的增长,可以进一步探索Jenkins的高级特性和其他工具集成,以提高开发效率和自动化水平。

    maven+jenkins+sonar集成搭建

    总的来说,"maven+jenkins+sonar集成搭建" 提供了一种强大的自动化质量保障流程,它结合了Maven的构建管理、Jenkins的持续集成和SonarQube的静态代码分析,有助于提升开发团队的工作效率和软件质量。

    ufire-springcloud-platform:基于一致性哈希算法实现websocket分布式扩展的尝试,提供模拟停机机演示解决单点故障演示,实现websocket服务的扩展容限。基于jenkins + github hook + docker-compose实现自动化持续部署

    4. **Jenkins + GitHub Hook**:Jenkins是业界广泛使用的持续集成工具,它可以通过配置GitHub Hook监听仓库的Push事件,实现代码变动的即时构建和测试。在ufire-springcloud-platform中,这一组合保证了代码更新后能...

    Jenkins2.107+github+tomcat8.0+jdk1.8安装和ansible部署web到两台tomcat

    - **GitHub 集成**:配置 Jenkins 与 GitHub 的连接,以便从 GitHub 拉取代码。 - **构建任务配置**:创建一个新的构建任务,并配置源代码管理、构建触发器等选项。 ### 2. GitHub 的使用与代码推送 #### 创建远程...

    springboot+sourceTree+gitlab+jenkins+ansible自动化部署详解

    Jenkins是一个开源的持续集成工具,用于监控重复的任务,如构建、测试和部署,以促进持续交付和持续集成的实践。Jenkins的核心价值在于其插件机制,允许用户根据自己的需求定制流水线。此外,Jenkins还支持多种类型...

    Jenkins+Ant+Tomcat持续集成自动化测试平台搭建

    要搭建一个基于Jenkins、Ant和Tomcat的持续集成自动化测试平台,首先需要安装以下工具: 1. **Ant**:Apache Ant是一个Java环境下的构建工具,用于自动化软件开发过程中的各种任务,如编译、打包和测试。下载安装后...

    jenkins+gitlab+centos7+windows自动化环境搭建

    Jenkins是一款广泛应用的持续集成/持续部署(CI/CD)工具,它允许开发者通过编写脚本或配置插件实现项目的自动化构建、测试和部署。在本案例中,我们将Jenkins部署在CentOS7虚拟机上,这样每次向GitLab推送代码时,...

    docker+Jenkins+pytest+allure自动化测试环境

    通过本文介绍的方法,可以在一台服务器上成功部署一套基于Docker、Jenkins、pytest和Allure的自动化测试环境。这套环境不仅能够提高软件开发的效率,还能确保软件的质量,非常适合团队协作和持续集成场景下的使用。

    jenkins + spring cloud

    【Jenkins + Spring Cloud】是将持续集成工具Jenkins与微服务框架Spring Cloud结合使用,实现自动化构建和部署Spring Cloud应用的过程。以下是对标题和描述中所述知识点的详细说明: ### Jenkins安装与配置 1. **...

    jenkins持续集成环境搭建步骤

    ### Jenkins 持续集成环境搭建详解 ...通过以上步骤,我们可以成功地搭建起一个完整的 Jenkins 持续集成环境,实现软件项目的自动化构建、测试与部署。这不仅极大地提高了开发效率,还确保了代码质量的一致性和可靠性。

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

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

    jenkins+git+tomcat+ansible发到tomcat-重启

    3. **构建触发器**:配置“Poll SCM”,输入`* * * * *`以实现持续集成。 4. **构建执行**:在“构建”部分配置Shell命令,用于执行构建脚本或运行单元测试等操作。 5. **构建后操作**:配置Ansible Playbook来实现...

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

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

    基于Jenkins的PHP自动构建

    ### 基于Jenkins的PHP自动构建 ...通过以上步骤,我们可以成功搭建基于 Jenkins 的 PHP 自动构建环境,实现代码的质量控制、自动化测试以及文档生成等关键功能。这对于提高开发效率、保证代码质量具有重要意义。

    9.Jenkins持续集成插件实战篇

    《Jenkins持续集成插件实战篇》主要涵盖了 Jenkins 在软件开发过程中的持续集成实践,它是一种强大的自动化工具,尤其在持续集成和持续部署(CI/CD)领域具有广泛的应用。以下将详细介绍 Jenkins 及其在实际工作中的...

    从Jenkins到GitHub Actions CI CD发展历程.pdf

    这推动了CI工具的演进,如Jenkins X,它是一个针对Kubernetes环境的CI/CD解决方案,利用容器技术进一步优化了持续集成和交付的过程。 Jenkins X的出现,体现了CI/CD工具向云原生的转变。在云原生计算基金会(CNCF)...

    6.3 jenkins+sonar_代码检查1

    在 Jenkins 中集成 SonarQube 扫描,可以实现持续集成和代码质量管理。 1. **安装 Sonar Scanner** - 将 Sonar Scanner 安装在 Jenkins 主机上。 2. **配置 Jenkins** - 在 Jenkins 中创建一个新的构建任务,...

Global site tag (gtag.js) - Google Analytics