互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI). 本文简要介绍持续集成的概念和做法. 一.概念 持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个. 1.快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易. 2.防止分支大幅偏离主干.如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成. 持续集成的目的,就是让产品可以快速迭代,同时还…
最近在公司实践持续集成,使用到了Jenkins的Pipeline来提高团队基于ASP.NET Core API服务的集成与部署效率,因此这里总结一下. 一.关于持续集成与Jenkins Pipeline 1.1 持续集成相关概念 互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI) . 持续集成指的是,频繁地 (一天多次) 将代码集成到主干. 它的好处主要有两个: (1)快速发现错误.每完成一点更新,就集成到主干…
一  持续集成.持续交付.持续部署 1. 持续集成 持续集成指的是,频繁地(一天多次)将代码集成到主干.持续集成的目的,就是让产品可以快速迭代,同时还能 保持高质量.它的核心措施是,代码集成到主干之前,必须通过自动化测试.只要有一个测试用例失败,就不能集 成.持续集成并不能消除 Bug,而是让它们非常容易发现和改正. 它的好处主要有两个. (1)快速发现错误.每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易. (2)防止分支大幅偏离主干.如果不是经常集成,主干又在不断更新,会导…
前面已经介绍过了 .Net Core 程序发布到 Docker 容器的内容.但是每次通过 SSH 链接到服务器敲命令,运行脚本也是挺麻烦的一件事.程序员是最懒的,能让电脑解决的问题绝不手动解决,如果当我们push一次代码后自动build代码,自动跑单元测试,如果测试通过,自动发布程序,如果失败就发邮件通知管理员,这样的话该多美好.为了达成这个目标于是持续集成(CI)持续交付/部署(CD)就被发明出来了.CICD领域有个大名鼎鼎的工具:Jenkins,但是这次不使用它.如果你使用阿里云的话,阿里云…
GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后在项目即将结束进行时,而这往往会花费大量的时间和精力.而持续集成是一种将集成阶段放在软件开发阶段的做法,以便更加有规律地构建,测试和集成代码. "持续集成并不能消除 Bug,而是让它们非常容易发现和改正." 持续集成可以在开发人员提交了新代码后,立刻进行构建.单元测试.从而我们可以根据测试…
这篇文章主要是来聊一聊jenkins,可说道jenkins,我没有办法不把它与持续集成(Continuous integration,简称CI)联系到一起,所以我先来谈谈什么是持续集成以及为什么需要持续集成? 我举个生活中的直观例子,最近家里刚刚搞完装修,就发现这装修的过程中,暗含着很多持续集成的思想,比如说地板,你家的房子50平,80平,100平,又有卧室客厅,可是地板块的大小就是统一的,而且都很小块,小而灵活就是持续集成的一个关键,其次呢,无论在哪里,地板要从一个边开始,一块一块的铺,铺完一…
持续集成简介 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量.它的核心措施是,代码集成到主干之前,必须通过自动化测试.只要有一个测试用例失败,就不能集成. Martin Fowler说过,"持续集成并不能消除Bug,而是让它们非常容易发现和改正. 环境搭建 JDK安装 参…
互联网时代,人人都在追求产品的快速响应.快速迭代和快速验证.不论是创业团队还是大中型企业,都在探索属于自己的敏捷开发.持续交付之道.fir.im 团队也在全面实施敏捷,并推出新持续集成服务 - flow.ci ,以帮助企业将开发测试流程自动化,更快速地交付产品. 4月15日,fir.im CTO 郭扬在"光环国际·2017敏捷春季峰会"带来了<敏捷工程实践的基石--持续集成>的技术实践,从敏捷方法论的角度分享了持续集成流程的质量实践与 fir.im 团队的 CI 技术实践.…
1 - 持续集成简介 持续集成(Continuous integration,简称CI)是软件的开发和发布标准流程中最重要的部分. 作为一种开发实践,在CI中可以通过自动化等手段高频率地去获取产品反馈并响应反馈的过程. 简单来说,就是持续不断地(一天多次)将代码合并(集成)到主干源码仓库,让产品可以快速迭代,同时保持高质量. 代码每次集成到主干之前,必须通过自动化测试,以便快速发现和定位错误. 持续集成并不能消除错误,而是让它们非常容易发现和改正. 1.1 适合使用持续集成实现自动化的工作类型…
在前面的文章中, 介绍自己当时所在团队的处境(使用.NET开发),一个不到十个人的研发团队在保证正常开发进度同时需要并发支持四.五十个项目问题处理,经常为了程序版 本冲突.日常测试版本.发布版本提供等重复枯燥无味的手工劳动,导致团队成员身心俱疲.经历这样痛苦的一段时间,终于忍受不了,通过命令行实现了包括获 取.编译.发布过程的集成,大大减轻版本编译的时间,此时还能见到团队成员一边编译程序一边聊天轻松的笑脸,这就坚定了自己持续集成的做法,不过可笑是当 时自己对持续集成没有任何的概念,只是当时的状况…
持续集成与持续交付是软件开发和交付中的实践.我们项目中一直在践行持续集成(CI:Continuous Integration):持续交付(CD:Continuous Delivery)未能达到理想状态,只能实践一部分.这篇文章用于总结CI/CD的实践. 持续集成 什么是持续集成? 软件开发中,集成是一个很可能发生未知错误的过程.持续集成是一种软件开发实践,希望团队中的成员频繁提交代码到代码仓库,且每次提交都能通过自动化测试进行验证,从而使问题尽早暴露和解决. 持续集成的好处是什么? 持续集成可以…
前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nexus私服,供其他模块引用.下面将主要介绍如何利用Jenkins.SVN.Tomcat以及Sonar来完成项目的自动化编译.测试和发布,以及检查项目的代码质量. 利器Jenkins     Jenkins源于另外一个持续集成工具Hudson,Hudson在o…
阅读目录: install configue gitlab-ci-multi-runner restore nuget packages bulid .sln run unit tests configue .gitlab-ci.yml configue build status badge image CI 精华文章: 持续集成是什么? 重温大师经典:Martin Fowler 的持续集成 Gitlab 部署 CI 相关资料: 配置 gitlab-ci 进行持续集成 使用 GitLab-CI…
虽然这部分内容并没有过多地讨论Apworks框架的使用,但这部分内容非常重要,它与Apworks框架本身的设计紧密相关,也是进一步了解Apworks框架设计的必修课. 单元测试与持续集成概述 在敏捷开发过程中,单元测试是非常重要的.这不同于传统的瀑布开发模型,在瀑布模型中,单元测试的重要性体现的并不明显,因为在这种模型中,"测试"被强调为整个开发流程中的一个环节,也会有专门的测试团队来负责测试过程,于是,由开发人员负责的单元测试往往被忽略.另一方面,在项目刚刚开始时,由于团队对开发过程…
转载自:iTech的博客 持续集成(第二版) 作者:Martin Fowler 译者:雷镇 持续集成 是一种软件开发实践.在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次.每次集成会经过自动构建(包括自动测试)的 检验,以尽快发现集成错误.许多团队发现这种方法可以显著减少集成引起的问题,并可以加快团队合作软件开发的速度.这篇文章简要介绍了持续集成的技巧和它 最新的应用. 最后更改于:2006年5月1日 目录 用持续集成构建特性 持续集成实践 只维护一个源码仓库…
概述 持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译.发布.自动化测试)来验证,从而尽早的发现集成错误.持续集成最大的优点是避免了传统模式在集成阶段的除虫会议(bug meeting),其要素包括统一的代码库.自动构建.自动测试.自动部署.频繁提交修改过的代码等. Jenkins的前身是Hudson,是基于Java开发的一种持续集成工具,是一个开源软件项目,主要用于: 持续.自动地构建/测试软件项目,如CruiseC…
前言 百度开放云(https://bce.baidu.com)是百度基于十五年基础架构核心技术积累推出的云服务,目前推出了14个云计算产品和9个大数据产品,并提供数字营销云.在线教育.物联网等10种解决方案.百度开放云安全.高性能.高扩展性的特点,可以帮助企业降低运维成本.提高生产效率和激发创新. 案例背景 开放云经过两年的快速发展,研发团队300多人,20多条产品线.随着业务快速发展和技术架构日益复杂,对研发交付能力不断提出更高要求,需要研发能非常快速构建出功能完善和质量稳定的产品.技术教练经…
1.持续集成之gitlab+gerrit+jenkins 1.1. GitLab 1.1.1. 简介 GitLab 是一个使用使用Ruby on Rails搭建的,用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务 1.1.2. 环境搭建 a) Install and configure the necessary dependencies If you install Postfix to send email please select 'Interne…
安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclipse上安装Buildship 建议直接去Eclipse market处下载,简单方便,如下图: Buildship的更多信息 请参考以下链接,有教程,比较简单, 主要内容: 如何导入Gradle工程, 如何创建Gradle工程, 如何执行Gradle任务, 等... http://projects.e…
想着你正在做一个网站 终于大功告成了,提交了代码后,你按下了开发环境的Build菜单,一杯咖啡后,Build Succeed,然后连接服务器,开始部署 当你乐滋滋的享受着你的开发成果时,突然发现了一个bug!于是你再次修改代码,build,部署 发现bug … 修改 … build … 部署… 发现bug … 修改 … build … 部署… … No! 真是够了,好烦 云端的持续集成 如上图所示,引入持续集成后,一切都变得方便了,当开发人员向源代码控制服务器提交了新的代码后,就会触发持续集成服…
持续集成已经被公认为极具价值的一项工程实践.在初始化一个项目时一个重要的任务就是搭建持续集成服务器,编写构建脚本.在我工作的所有项目中都引入了持续集成机制.它已经像氧气一样成为软件开发过程中的一项工程活动. <持续集成>站在理论的角度阐述了持续集成能够解决什么样的问题,如何解决,需要遵循那些原则等.这本书的副标题是-软件质量改进和风险降低之道(Improving Software Quality and Reducing Risk).副标题直指持续集成的两个好处:提高软件质量及降低项目风险.…
1.SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质量(为什么要用SonarQube): (1)复杂度分布(complexity):代码复杂度过高将难以理解.难以维护(2)重复代码(duplications):程序中包含大量复制粘贴的代码是质量低下的表现 (3)单元测试(unit tests):统计并展示单元测试覆盖率 (4)编码规范(coding rules):通过Findbugs,PMD,CheckStyle等规范代码编写 (5)注释(co…
http://www.infoq.com/cn/articles/MSBuild-2   作者 Mustafa Saeed Haji Ali ,译者 李剑 发布于 2012年10月23日 | 注意: 挥一挥衣袖,带走满满干货,关注活动大本营,时不时发福利呦!3 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单   这是持续集成系列的下半部分,如果你还没看过上半部分的话,请点击这里:用MSBuild和Jenkins搭建持续集成环境(1). 与Jenki…
利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitlab distcc ci 这次实习的任务之一就是搭建一个持续集成(Continuous Integration)环境. 我们选择Jenkins作为持续集成工具,其优点是提供web GUI配置界面,方便配置,还可以安装很多第三方插件(plugin)进行定制与扩展,功能强大. 其次选择Gitlab作为gi…
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一批的用户在使用中纷纷出现闪退bug,轻则,很可能前期推广砸的钱都白费了,重则,口碑不好,未来也提升不起用户量来了.静下心来分析一下问题的原因,无外乎就是质量没有过关就上线了.除去主观的一些因素,很大部分的客观因素我觉得可以被我们防范的.根据大神们提出的一套开发规范建议,CI + FDD,就可以帮助我…
尽管Thoughtworks的首席科学家Martion folwer 为“持续集成 ” 下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解.从狭义上讲,持续集成可以认为是一种基于某种或者某些变化对软件系统进行的经常性的构 建活动(注:这里的构建活动不仅指编译打包工作,还包含各类自动化测试.部署及发布活动).然而,它忽视了一点,即:任何实践中都应该包含“与人的交互” 这一因素.因此,从广意上讲,持续集成应该是软件开发团队在上述活动的约束下所采用的整个开发流程及活动.它强调开发团队与持续…
上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nexus私服,供其他模块引用.下面将主要介绍如何利用Jenkins.SVN.Tomcat以及Sonar来完成项目的自动化编译.测试和发布,以及检查项目的代码质量. 利器Jenkins Jenkins源于另外一个持续集成工具Hudson,Hudson在oracle收购sun之…
持续集成及部署利器:Go   Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为Cruise,是ThoughtWorks在做咨询和交付交付项目时自己开发的一款开源的持续集成工具.后来随着持续集成及持续部署的火热,ThoughtWorks专门成立了一个项目组,基于Cruise开发除了Go这款工具. Go的官方网站是http://www.thoughtworks.com/products/go-continuous-deliv…
CI持续集成 “我的TDD实践”系列之CI持续集成 写在前面: 我的TDD实践这几篇文章主要是围绕测试驱动开发所展开的,其中涵盖了一小部分测试理论,更多的则是关注工具的使用及环境的搭建,做到简单实践先行,后理论专精的目的. TDD实践系列文章: 1.TDD概念篇 2.CI持续集成 3.SVN架设篇 4.NUint测试框架 5.Mock模拟框架 6.Inject注入框架 7.TestCoverage代码覆盖率工具 8.UMLTool建模工具 9.SandCastle构建文档 简介 CI(Conti…
一个web的持续基础实践: https://mp.weixin.qq.com/src=3&timestamp=1494325174&ver=1&signature=wFVC0E6YlKsNsCYnhs8XlMdRTmtwBU8qMW4YCsNoryvcIAGD8hPCnOCaXb5WisyGrmEOVUJVd1n2FRjV3ohyUWuTDUGMGhkDPXAlvd6t0RtNSivqrMRgof1KJcnZrAvzTYkjURSzDPjk8wR5vq8ASUOarm9mFlUad…