热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

持续集成1初步

本持续集成系列文章主要介绍了使用jenkins进行自动构建的方法,包括定时svn签出、编译、远程部署、自动化单元测试、自动下发构建结果邮件等,整套流程交给jenkins完成,提高了

1.Jenkins是什么

  •  Jenkins是一个可扩展的持续集成工具。简单就说就是,让项目的代码签出、编译、部署等构建过程自动化完成,并支持周期性自动构建

 

2.准备工作

 

  • 首先准备好编译和部署、自动化测试需要用到的脚本,例如ant的build.xml

 

  • 还需要准备Jenkins的官方war包,笔者使用的版本为1.598 ,下载地址http://ftp-chi.osuosl.org/pub/jenkins/war/1.598/jenkins.war

 

 

3.Jenkins负责什么

 

  • Jenkins负责周期性的代码签出、并调用编译部署及自动化测试的脚本,在这个过程中发生任何错误,都可以及时的通过多种方式通知到相关负责人构建失败,例如以邮件的形式告知项目负责人以及提交问题代码的开发人员。

 

4.下面是Jenkins配置流程

 

  • 首先将jenkins.war扔到tomcat下并启动,访问10.1.100.10/jenkins,进入系统管理


 

技术分享

 

 

 

 

  • 先进行系统设置

技术分享

 

 

  • 设置JAVA_HOME和ANT_HOME

技术分享

 

 

  • 设置系统管理员邮件地址

技术分享

 

  • 设置邮件参数并测试,注意如果想要测试成功,填写的用户名必须与上面的管理员邮件地址相同,设置完成后,保存

技术分享

 

 

 

 

  • 接下来创建一个jenkins账号。回到系统管理,点击Configure Global Security

技术分享

 

  • 启用用户注册功能

技术分享

 

  • 点击注册,注册部分略

技术分享

 

  • 再次进入Configure Global Security,更改授权策略,这样就只有刚才建立的用户有所有权限

技术分享

 

  • 回到系统设置,默认的邮件插件只能发送邮件给一个人,我们想发送给更多人,需要再安装一个邮件插件,点击管理插件

技术分享

 

 

 

  • 输入Email Ext Recipients Column Plugin,并安装

技术分享

 

 

 

 

 

 

  • 新建一个build项目

技术分享

 

  • 源码管理部分选择svn地址后会报错如下,点击enter credential,设置账号密码即可。

技术分享

 

 

 

 

 

  • 触发设置,共有4种触发情况
  • 这里说一下第三种和第四种触发情况

    Build periodically   周期性构建

    Poll SCM   根据SVN等代码同步工具的版本号进行周期性创建,也就是说,版本无改变不构建

技术分享

 

  • 为了更容易看到效果,这里选择Build periodically
  • 5 * * * * 的含义是每5分钟执行一次

    (分钟  小时  天 月 年)

    前面的H/代表一个随机的秒,Jenkins更推荐H/这样的写法

技术分享

 

 

  • 下面填写构建的shell脚本(根据项目本身依赖关系、环境等进行编译、部署等操作的脚本)

技术分享

 

 

 

 

  • 接下来进行构建后操作配置,这里我们只进行邮件配置,选择Editable Email Notification 
  • “cc:”代表抄送,多个邮件用逗号隔开

技术分享

 

 

 

  • Trigger可以设置选择在何时发送邮件,默认是构建失败发送邮件,设置Trigger需点击Advanced Settings按钮
  • 也可设置追加发送邮件给对构建有影响的提交者,即"犯过错者" 设置选项为Culprits,此时该邮件会发给上次构建时提交代码发生错误的人员,插件会基于提交者的ID和追加Jenkins配置页面的(default email suffix)默认邮件后缀来生成一个邮件地址。譬如,上次提交代码的人是”first.last”, 默认的电子邮件后缀为“@somewhere.com”,那么电子邮件将被发送到“first.last@ somewhere.com”。

 

技术分享

 

 

保存。项目的持续集成构建完毕。

 

如果有自动化测试的脚本文件,也由Jenkins来调用,即可实现签出、编译、部署、测试的自动化完成,并且在这个过程中有任何问题,按照如上的配置,将发送邮件给Project Recipient  List中的地址以及提交错误代码的人。

 

参考文档

http://jenkins-ci.org/

http://www.cppblog.com/fwxjj/archive/2012/10/04/192809.html

持续集成1---初步


推荐阅读
  • 本文探讨了C++编程中理解代码执行期间复杂度的挑战,特别是编译器在程序运行时生成额外指令以确保对象构造、内存管理、类型转换及临时对象创建的安全性。 ... [详细]
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • CentOS 系统管理基础
    本文介绍了如何在 CentOS 中查询系统版本、内核版本、位数以及磁盘分区的相关知识。通过这些命令,用户可以快速了解系统的配置和磁盘结构。 ... [详细]
  • 本文详细介绍了get和set方法的作用及其在编程中的实现方式,同时探讨了点语法的使用场景。通过具体示例,解释了属性声明与合成存取方法的概念,并补充了相关操作的最佳实践。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
  • 鼠标悬停出现提示信息怎么做
    概述–提示:指启示,提起注意或给予提醒和解释。在excel中会经常用到给某个格子增加提醒信息,比如金额提示输入数值或最大长度值等等。设置方式也有多种,简单的,仅为单元格插入批注就可 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
author-avatar
邵子轩一号
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有