持续集成

10,使用Hudson进行持续集成

时间秒杀一切 提交于 2019-11-29 02:01:41
一. 持续集成的作用、过程和优势 持续集成就是 快速 且 高频率 地 自动构建 项目的 所有源代码 ,并为项目成员提供丰富的 反馈 信息。 一次完整的持续集成包含如下步骤 : 1 ) 持续编译 (旧代码应全部删除,重新编译所有最新代码) 2 ) 持续数据库集成 (清理数据库,重新创建表结构) 3 ) 持续测试 (单元测试仪 + 集成测试) 4 ) 持续审查 ( Checkstyle 、 PMD 、测试覆盖率,频率可以低一些) 5 ) 持续部署 6 ) 持续反馈 持续集成的好处 : 1) 尽早暴露问题。(修复问题成本低) 2) 减少重复操作。 3) 简化项目发布。 4) 建立团队信心。 二. Hudson 简介 Hudson( http://hudson-ci.org ) 提供了灵活的插件扩展框架,许多公司都选择了它,如 JBoss ( http://hudson.jboss.org ) 和 Sonatype ( https://grid.sonatype.org/ci ) 。 三. 安装 Hudson 1. 安装要求 Hudson 必须运行在 JRE1.5 以上。 2. 下载 可以从 http://hudson-ci.org/ 下载最新的安装包。下载完成后获得一个 hudson.war 。 3. 安装 下载后为 hudson.war 可以直接运行 。 java – jar

持续集成高级篇之Jekins参数传入与常见任务

不问归期 提交于 2019-11-28 23:46:54
系列目录 有的童鞋可能已经发现,PipeLine项目与自由式项目相比,可配置的项少了很多,比如说环境变量定义,所有步骤完成后执行动作,拉git代码库等.其实这些功能并没有缺,而是配置的方式不一样了,以前是通过图形化界面配置,虽然直观简便,但是功能不能包罗万像,对于一些复杂的项目显得捉襟见肘,而Jenkins PipeLine使用代码配置功能更加强大.以后的章节中我们会介绍常用的配置如何通过PipeLine里的Groovy脚本来实现. 前面讲参数化构建的时候已经讲到对于复杂的构建把一些重复的,常用的代码做成变量的重要性,这里讲解如何通过PipeLine方式定义项目级别的参数以及环境变量. 首先需要说明的是,节点级别和全局级别以及文件参数变量的配置在PipeLine里依然有效,读取的方式也一样,只是会有一些小坑,这里也会介绍 PipeLine中可以定义变量和环境变量,下面分别介绍如何定义变量和环境变更. PipeLine中定义变量 PipeLine中定义变量非常简单,只需要使用 def 变量名=变量值的形式即可 看如下PipeLine代码(大家自己创建项目) node { def hello="world" stage("echo"){ bat "echo $hello" } } 以上脚本中我们先是定义了一个名为 hello 的变量,然后通过 $变量名 方式获取到它

Jenkins持续集成环境搭建

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-28 23:41:43
前言:通过启动编辑器启动自动化脚本实属麻烦~ 采用jenkins持续集成,自动部署 1.官网下载安装 https://jenkins.io/zh/ ①下载windows版本 无特殊步骤,直接一键安装下去。 ②安装好后会自动打开IE浏览器,访问地址localhost:8080,IE显示无法访问可复制地址到谷歌中。 ③按照提示的步骤进行解锁 ④插件安装,可选择“标准”插件(新手请选择这个,避免后期缺少插件) ⑤设置用户和密码 ....即安装成功~ 来源: https://www.cnblogs.com/bf-blackfish/p/11432921.html

持续集成高级篇之Jekins参数化构建(二)

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 21:41:27
系列目录 上一节我们讲解了如何使用bat脚本或者powershell脚本自身的机制来达到参数化构建的目的,这在一定程序上增加了灵活性,然而缺点也相当明显:它只能适应一些相对比较固定的参数传入(比如像上一节讲到的,构建的环境分为( development 和 production )两种情况,对于一些相对较复杂的情况以上方法就会捉襟见肘,最为明显问题是外部的变化可能导致参数随之做必要更改,最常见的是文件的位置参数,我们指定归档文件的目录为 D 盘下的一个文件夹,现在D盘满了需要指定为其它盘,则所有的脚本都需要更改,这样的结果就是可维护性差.我们可以把一些较为常用的参数定义为全局参数,比如常用工具的位置. 本节我们将从项目级别,节点级别,全局级别来讲解Jenkins ci提供的参数配置方案 项目级别参数 本节部分我们分为参数构建和在项目中定义项目级别参数来讲解. 参数化构建项目. 在Jenkins里新建一个自由式项目,勾选 This project is parameterized 会出现一个 Add Parameter 按钮,点击会出现一个下拉框,选择最后一项'string paramter'创建一个字符串类型参数,在出现的对话框中输入名称(我用的是 buildenv )和默认值(默认值可以不输入),在构建栏里我们选择 Execute windows bat command

持续集成高级篇之Jekins脚本参数化构建

寵の児 提交于 2019-11-28 19:15:51
系列目录 本系列已经很久没有更新了,接前面基础篇,本系统主要介绍jenkins构建里的一些高级特性.包括脚本参数化,Jenkins Pipeline与及在PipeLine模式下如何执行常见的传统构建任务(这里指jenkins自由风格构建模式),jenkins cli,jenkins ssh,jenkins任务调度,资源调度,jenkins任务远程触发,jenkins混合集群搭建(同时包含windows和linux节点)等高级功能. jenkins参数化构建 在一些复杂的构建中,我们可能需要指定很多参数,如果这些参数都写死在cmd或者powershell脚本或者ssh脚本里,脚本的可扩展性将严重受限,最为重要的是修改构建脚本可能会造成严重后果(尤其是一些非常复杂的脚本),这里的一个最佳实践就是不要轻易更改生产环境的脚本文件.而参数化构建可以大大增加脚本的可扩展性. Jenkins提供了丰富的参数配置入口结合脚本自身的外部参数处理可以实现非常灵活的脚本参数配置.下面从脚本自身参数化选项,项目级参数化配置,节点级参数化配置以及全局参数配置来详细讲解如何在Jenkins里实现参数化配置. 脚本自身参数化配置 下面分别介绍bat脚本和powershell脚本如何接收外部参数 bat脚本接收外部参数 在windows bat脚本命令里,可以通过%0,%1,%2...以此类推来接收外部传入参数

Centos下安装持续集成服务器——Jenkins

落爺英雄遲暮 提交于 2019-11-28 19:13:56
1.安装说明 PS:为什么要有安装说明?江边望海在网上找资料的时候发现很多教程是没有交代清楚安装环境的。所以,不清楚他们的教程是否适合我的环境。明确『安装说明』方便网友了解我的配置环境,便于大家深入理解此教程。 虚拟机:VirtualBox4.3.26 操作用户:root 系统环境:centos6.6-x86_64(最小化安装) 安装方式:war安装 软件:jenkins.war 软件下载目录:/root/opt 下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war ================ 2.预置条件 系统必须已经安装配置了JDK6+,如果没有安装请参考《 Centos下安装JDK 》。 系统必须已经安装配置了Tomcat7+,如果没有安装请参考《 centos6.6安装tomcat 》 ================ 3.安装Jenkins 第一步:移动Jenkins到Webapps目录 [root@localhost opt]# wget -c http://mirrors.jenkins-ci.org/war/latest/jenkins.war [root@localhost opt]# mv jenkins.war /usr/local/tomcat/webapps/ 第二步:编辑配置文件

iOS-利用Jenkins持续集成项目

本小妞迷上赌 提交于 2019-11-28 18:26:07
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段。用户们都是很挑剔的。如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一批的用户在使用中纷纷出现闪退bug,轻则,很可能前期推广砸的钱都白费了,重则,口碑不好,未来也提升不起用户量来了。静下心来分析一下问题的原因,无外乎就是质量没有过关就上线了。除去主观的一些因素,很大部分的客观因素我觉得可以被我们防范的。根据大神们提出的一套开发规范建议,CI + FDD,就可以帮助我们极大程度的解决客观因素。本文接下来主要讨论 Continuous Integration 持续集成(简称CI) 目录 1.为什么我们需要持续集成 2.持续化集成工具——Jenkins 3.iOS自动化打包命令——xcodebuild + xcrun 和 fastlane - gym 命令 4.打包完成自动化上传 fir / 蒲公英 第三方平台 5.完整的持续集成流程 6.Jenkins + Docker 一. 为什么我们需要持续集成 谈到为什么需要的问题,我们就需要从什么是来说起。那什么是持续集成呢。 持续集成是一种软件开发实践:许多团队频繁地集成他们的工作,每位成员通常进行日常集成,进而每天会有多种集成。每个集成会由自动的构建(包括测试)来尽可能快地检测错误

fir.im Weekly

半世苍凉 提交于 2019-11-28 15:17:48
持续集成是一项“一次配置长期受益”的投入,让开发、测试、生产环境的统一变得更加自动高效。 本期 fir.im Weekly 收录了关于 Android、iOS 持续集成的最新实践分享,也有一些开发工具、源码和 UI 动画的分享。 iOS搭建CI持续集成环境 @大慈大悲大熊猫 写的这篇文章总结了自己在 iOS 下的自动化打包,搭建可持续集成环境的实践过程,选择方案是 Jenkins+ Gitlab/Github+Xcode+Fir。文章 传送门 . 对比学习下, @宣X_x 的这篇文章,用 Jenkins+GitHub+fir-cli 搭建持续集成环境 ,看看哪个更适用于你。 使用DaoCloud与FIR.im为CodingAndroid项目开启持续集成的尝试 @痕迹BLANK 把持续集成环境搭建在 DaoCloud 上,通过几步就可以实现 CodingAndroid 项目自动提交,自动编译发布测试包到 fir.im 上。这是一套很新鲜的玩法,感兴趣地可以尝试一下,文章地址☞ http://www.jianshu.com/p/a6ebb0e0c5ae . icon-font-for-multiple-platforms 由 @廖祜秋liaohuqiu_秋百万 分享。 “开源一个项目。我们经常会在项目中使用 Icon Font,比如 Font Awesome。最近做一个项目

fir.im Weekly

痴心易碎 提交于 2019-11-28 15:15:15
上 Github 交友刷 StackOverflow 解惑,科学上网是攻城狮必备技能,加快打怪练级速度。关于科学上网, @左耳朵耗子 在微博上分享了一篇文档,轻一点教你建一个VPN服务器,重一点到教你在路由器上科学上网,教程在 这里 。 除此之外,本期 fir.im Weekly 推荐了很多优秀的 Github 项目、iOS/Android 开发工具及技术分享,一起来看看。 『iOS,Android开发工具&源码分享』 活久见的重构 - iOS 10 UserNotifications 框架解析 @onevcat 出品的新文章,本文回顾了 iOS 通知的历史,然后通过一些例子来展示 iOS 10 SDK 中相应的使用方式,来说明新 SDK 中通知可以做的事情以及它们的使用方式。 全文浏览,点击 这里 。 UpdateDemo - fir.im的android app自动更新库 HugeTerry_晓特 在微博上分享了一个 Android 库,用来做 fir.im 应用新版本检测,依赖库后几行代码就可以实现对app的更新,方便快捷。项目地址: UpdateDemo . Android端外推送到底有多烦? 网上已经有很多关于Android推送的讨论,但很少有站在App开发者(特别是开发App的创业团队)的角度来进行介绍的文章。 张铁蕾 的 这篇文章 站在一个App开发团队的角度

fir.im Weekly

一世执手 提交于 2019-11-28 15:14:28
说起开源社区,Github 是一个不可缺少的存在。作为全球最大的同性交友网站,上面有太多优秀的开源代码库和编程大神,让无数开发者心生向往。那么如何正确的使用 Github,也许是编程学习之必要。来看下 @googdev 的 关于 如何选择开源项目 , 如何正确使用开源项目 , 如何发现优秀的开源项目 ,同时作者还出了几篇 从0开始学习 GitHub 的系列文章,对于迫切需要成长的开发者会有所帮助。 本期 fir.im Weekly 收集了不少好的 Github 优秀源码,iOS/Android 开发工具与文章分享,持续集成相关实践和程序员Tips,诸位慢慢「享用」~ 『iOS,Android开发工具&源码分享』 深入解读 iOS 开源项目源码 来自 @iOS开发精选 微博分享; 作者对一些优秀的 iOS 开源项目源码进行分析解读,并将其整理成文后分享到了 GitHub 上,以帮助开发者们能更好的理解优秀开源项目的底层代码实现原理,GitHub 地址: iOS-Source-Code-Analyze Android Sdk 源码解析 @AndroidCJJ 在微博上分享: “** AndroidSdkSourceAnalysis **是一群爱分享的GitHub小伙伴花了好长时间写的关于android sdk 源码解析文章,旨在帮助Android开发者更好的学习。”如果你也感兴趣