请选择 进入手机版 | 继续访问电脑版
点击联系客服
客服QQ:509006671 客服微信:mengfeiseo

广州老站长门户

 找回密码
 立即注册
查看: 84|回复: 50

持续集成-jenkins

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-4-13 14:15:56 | 显示全部楼层 |阅读模式
持续集成(Continuous  integration,CI)

在开发过程中,我们经常遇到以下奇怪的问题:

可以在本地编译成功的代码,但同事更新代码后发生了编译错误。

如果项目有多个目标(目标),则资源文件将仅添加到当前目标中,其他目标将无法正确编译。

苦的工具类被同事改变了,或者自己改变了,被很多地方使用了,怎么能在这一类行为不变的情况下影响项目的其他模块呢?

就是这些东西。

引起各种奇怪问题的原因有很多。例如:

开发环境比较复杂,不干净。

IDE中的bug;

提交前有几项检查要做,开发时由于各种原因没有做。

那么,这些问题是否可以避免呢?当然可以避免。如果代码有新的更改,则在提交到版本库时,帮助一个人确认需要的事项并进行测试。这当然可以,如果老板同意专门招募这种人。

这种机械重复可以找到在特殊服务器上运行的工具,这些工具可以执行相对干净和自动化的任务(自动编译、代码检查、测试等)。这个工具是“持续集成”。

1.2,简单理解持续集成

程序代码提交质量低,提交内容导致现有系统中的错误及时或根据需要自动编译版本,进行自动测试。

1.3,对持续整合的详细了解

早期集成、频繁集成有助于项目开发人员早期发现项目风险和质量问题,以后发现的问题越多,解决成本越高,可能会导致项目延期或项目失败。

持续集成是软件开发实践。也就是说,团队开发成员每天至少集成一次,即一个团队每天集成多次,每个集成都通过自动构建(包括编译、发布和自动化测试)进行验证。简而言之,就是不断集成到多个团队成员的工作中,并提供反馈。

1.4,持续整合的核心价值

在持续集成中,重复的编译发行等将自动进行,无需人工干预,减少重复过程,从而节省时间、成本和工作量。

持续集成可确保团队成员在每个时间点成功集成提交的代码。这意味着您可以随时立即发现软件集成问题,并随时发布可分发的软件。

持续集成也有助于软件本身的发展趋势。这在需求模糊或经常变化的场景中特别重要。持续集成的质量有助于团队做出有效的决定,建立对产品开发的信任。

1.5、业界普遍认可的持续集成原则

版本管理软件安全团队成员提交的代码不会导致集成失败。常用的版本控制软件包括IBM  Rational  ClearCase、CVS、Subversion等。

开发人员应及时将代码提交到版本控制库中,并经常在版本控制库中本地更新代码。

实施集成需要专用集成服务器。根据项目的具体现实,集成构建可以由软件修改直接触发,也可以定期启动,如每30分钟构建一次。

必须保证建设的成功。如果构建失败,则在构建过程中更正错误是最高优先级的操作。一旦恢复,就必须手动开始构建。

构建失败的代码不会更新。

1.6,持续集成系统配置

自动构建过程,包括自动编译、部署、部署和测试,节省了很多时间,将此过程自动化后,在今后的开发过程中,我们需要做的就是将代码提交到版本库中,构建自动完成。基本上不需要手动操作。

代码存储库,即构建过程的材料库,需要版本控制软件来确保代码的可服务性。

一台持续的集成服务器。最好单独使用一台服务器作为持续的集成服务器。一方面,它可以确保环境的纯粹性,不影响开发,持续的集成服务器通常不会关闭,因为它随时准备开始构建。本文介绍的Jenkins是一款配置简单、易于使用的持续集成服务器。

1.7、集成过程:首先要有集成代码库。服务器继续在版本控制服务器上检查代码状态,以确保代码已更新。如果发现代码更新,请从版本控制服务器下载最新的代码。代码完全更新后,调用自动编译脚本来编译代码。然后运行所有自动化测试并执行代码分析。如果这些步骤中的任何一个失败,构建将失败,持续的集成服务器将提供响应的反馈。每次提交代码时,都会在持续的集成服务器上触发预定的构建,进行编译和分发。

1.8,詹金斯

提到Jenkins,就要提到另一个持续的集成工具——hudson。Hudson由Sun开发,2010年Sun由Oracle收购,Oracle主张对Hudson拥有商标所有权。Jenkins是从Hudson分离出来的可扩展、持续的集成引擎,并将继续走在Open  Source的道路上。两者目前都由不同的团队维护。[2]

Jenkins在持续整合领域的市长/市场份额中处于领先地位。各种规模的团队都在使用多种语言(包括NET、Java、Ruby、Groovy、Grails和PHP)实施的各种项目。[5]

Je
nkins是一个独立的基于Java开发的一种开源持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。可用于自动化各种任务,如构建、测试和部署软件。[4]
Jenkins可以建立一个软件项目或工作运行的计划任务。 [2]
1.9、Jenkins特点[4]
开源免费。
跨平台,支持所有的平台。
安装配置超级简单。可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。[4]
易于使用。web形式的可视化的用户管理页面,简单、直观、友好,发布工作人员只需要通过简单的 UI 操作就可以替代原来繁琐的发布工作。[5]
master/slave支持分布式的build。
tips及时快速的帮助。
拥有良好的扩展性。已有的200多个开源插件可供使用,而且几乎每周会有新的开源插件贡献进来,这些插件的安装都十分快捷和简单。[5]
发展良好。Jenkins 开源社区的规模变得越来越大、活跃度也变得越来越高,发展速度非常快。[5]
1.10、Jenkins 的两个功能
不断地进行项目的构建/测试软件。
监控外部运行的作业: 如计划任务作业和 Qrocmail 的工作,即使是那些在远程机器上运行的计划任务。 Jenkins 生成这些日志并且很容易让你注意到错误的出现。实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。[1]
1.11、jenkins的工作步骤
典型的工作流包括以下几个步骤:[7]
开发
提交
编译
测试
发布
有了Jenkins的帮助,除了第1步,后续的4步都是自动化完成的。具体的,当你完成了提交,Jenkins会自动运行你的编译脚本,编译成功后,再运行你的测试脚本,这一步成功后,接着它会帮你把新程序发布出去,特别的,在最后一步,你可以选择手动发布,或自动发布,毕竟发布这件事情,还是需要人为的确认一下比较好。
回复

使用道具 举报

1

主题

815

帖子

-275

积分

限制会员

积分
-275
发表于 2021-4-13 14:17:16 | 显示全部楼层
LZ真是人才
回复

使用道具 举报

1

主题

835

帖子

-271

积分

限制会员

积分
-271
发表于 2021-4-13 14:38:19 | 显示全部楼层
小手一抖,积分到手!
回复

使用道具 举报

1

主题

795

帖子

-315

积分

限制会员

积分
-315
发表于 2021-4-13 15:03:06 | 显示全部楼层
沙发!沙发!
回复

使用道具 举报

1

主题

810

帖子

-285

积分

限制会员

积分
-285
发表于 2021-4-13 15:23:46 | 显示全部楼层
LZ说的很不错
回复

使用道具 举报

0

主题

811

帖子

-293

积分

限制会员

积分
-293
发表于 2021-4-13 15:44:40 | 显示全部楼层
前排支持下
回复

使用道具 举报

1

主题

750

帖子

-280

积分

限制会员

积分
-280
发表于 2021-4-13 16:08:27 | 显示全部楼层
看帖回帖是美德!
回复

使用道具 举报

1

主题

851

帖子

-287

积分

限制会员

积分
-287
发表于 2021-4-13 16:28:44 | 显示全部楼层
看帖回帖是美德!
回复

使用道具 举报

0

主题

831

帖子

-251

积分

限制会员

积分
-251
发表于 2021-4-13 16:48:47 | 显示全部楼层
我抢、我抢、我抢沙发~
回复

使用道具 举报

0

主题

794

帖子

-264

积分

限制会员

积分
-264
发表于 2021-4-13 17:10:46 | 显示全部楼层
难得一见的好帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|广州@IT精英团

GMT+8, 2021-5-8 13:18 , Processed in 0.068224 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表