项目的持续集成项目建议怎么做,有没有好的工具推荐

持续集成持续交付七大开发工具
软件开发周期中需要一些可以帮助开发者提升速度的自动化工具。其中工具最重要的目的是促进软件项目的持续集成与交付。通过CI/CD工具,开发团队可以保持软件更新并将其迅速的投入实践中。Jenkins是最著名的CI/CD系统工具,且能,管理开发方面。Jenkins为插件开发提供便利,为扩展版本控制系统提供功能且为IBM提供支持。 由Sun Microsystems分离出来的Hudson项目首次推出Jenkins,其,提高可用性与安全性。但是当涉及持续集成与持续交付时,Jenkins并不是唯一的选择。 CircleCI,、GitLab和 JetBrains 等公司也为开发者提供可用的CI/CD工具。Atlassian BambooAtlassian Bamboo提供丰富的功能,从构建与部署Docker Container在Amazon Web Services运行应用程序。专门的代理可被用于热修复和关键构建。可扩展性一直被视为Jenkins的眼中钉,在这里,Appfire的CEO Randall Ward,Atlassian商业合作伙伴提供附件组件和服务,提高Bamboo优势。Atlassian确实提出了可扩展性,同时Jenkins用户曾发现Jenkins工具有“主要性能障碍”。Bamboo通过轮询代理和扩展代理功能。Appfire使用Bamboo作为瑞士军刀,与第三方附加组件集成测试,以及部署代码。Bamboo功能代码显而易见,确保用户从之前最新的部署中查看完整的代码更改。它集成其他的Atlassian产品,包括Bitbucket Git代码管理解决方案、Jira项目管理解决方案和HipChat团队聊天应用程序。CircleCICircleCI也强调了扩展性,除了它能测试一切,对移动应用程序进行Jasmin单元测试。CircleCI帮助开发者带来Docker文件到产品中。CircleCI提供了一个编排层和一个工作流工具,可自动化代码更改且将代码推到数据中心。始于2011年,CircleCI开始作为多组织Saas选择。它是Jenkins的替代,用户无须管理自己的服务器,Ruby、Python和AJAX应用程序是它的强项。它现在可以在防火墙外部署,与Jenkins相反,它是开源的且是一个企业解决方案。CircleCI可扩展超出Jenkins所能处理的,其配置是在代码中编写的而不是在服务器中完成的。Eclipse HudsonJenkins的前身,在Oracle移交项目的五年前Hudson是Eclipse Foundation管理的。Oracle继承了Hudson当其在2010年收购了Sun Microsystems,但Jenkins开发者并未在Oracle项目方向上取得一致。最新的更新是在2月,Hudson是用Java编写且运行在servlet容器上如Apache Tomcat。它可以使用版本控制工具如Git和Subversion。“在Hudson团队中我们致力于加强Hudson在一个已开始的基础上,重点创建Hudson一个合适的平台为持续交付以及持续集成,“Eclipse的一位代表说。”因此,您将看到工具的新功能,特别涉及大型企业在规模和复杂的构建管道使用需求Hudson。”根据Eclipse的一个案例研究显示,Hudson用户Cleo提供了业务集成软件和服务,评估Jenkins代替Hudson因为Jenkins维护大多数Hudson插件。“我们放弃了这个想法后,Jenkins的核心功能是比Hudson的更加不可靠,”Cleo发布工程师Stuart Lorber表示。GitLab CI在可用的SaaS或防火墙外,开源GitLab CI可以在任何平台上执行且支持语言,包括Unix、Windows,OS x。用户可以自动向上和向下扩展虚拟机进行即时处理和最小化。其他功能包括多语言支持、实时记录、每阶段管道定义多个作业和Docker支持,用于测试和构建Docker图像。另外可扩展性也是一个优势。GitLab CI是GitLab code-hosting平台的一部分,旨在为持续集成提供简单的设置。设置CI曾经是乏味的,我们想让它非常简单。GitLab CI并不需要大量的管理,测试被执行在GitLab Runner中,用Go编写且提供多平台、多语言功能。因为GitLab CI与GitLab集成,用户不需要建立新的项目。用户添加一个文件来描述你想要如何测试库。JetBrains TeamCityJetBrains TeamCity CI/CD服务器集成工具如Apache Maven创建管理和JetBrain自己的YouTrack问题追踪工具。我们提供完整的体验与内置的功能插件。
TeamCity 不是开源的,有一个Web界面和管理功能。该平台有IDE插件适用于Eclipse、Microsoft Visual Studio、和 JetBrains IntelliJ。还提供动态测试报告。TeamCity是一个产品且已存在10年。由JetBrains衍生出并进化为很成熟的产品。ThoughtWorks GoCDThoughtWorks GoCD是一个开源的持续交付系统,它提供了一个“材料清单”部署。代理网格同时通过管道和版本提供并行处理,模板允许重用配置管道。它支持CD,开箱即用,无须安装其他的插件。GoCD与Jenkins不同之处在于它是部署管道以及简化持续交付,GoCD可被安装或建立在云上。ThoughtWorks SnapThoughtWorks Snap提供基于云的持续集成和交付的功能。Snap在云计算中完全是人来操作的,它是面向用户“无须任何基础设施”。托管部署可以被设置在云平台中,包括GitHub、Amzaon Web Services、DigitalOcean和Heroku。合并请求被测试以确保其完全合并。Snap在GitHub上是免费使用公共存储,其中有一个负载使用私有存储。近期,Docker支持增加到Snap,Docker的图片通过软件交付和部署可被使用。
英文来源:
作者: Paul Krill
没有更多推荐了,在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
以前做Java项目用过和,但是貌似只能用于Java项目的持续集成(?其实这些持续集成工具的网站上并没有明确说支持哪些语言写的项目,只是构建工具都是Ant和maven,所以我也不确定)。不知道Python项目适合用哪个持续集成工具,如果还能提供推荐工具的使用体验就更好了:)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
它家好像还没出private build的功能,不过如果是开源开发可以试试
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
内心狂顶buildbot, 但是说易用好像还是jenkins真希望能有人fork一下buildbot搞点NB的东西出来
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
flow.ci 国内的持续集成工具
该答案已被忽略,原因:
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。36 条评论分享收藏感谢收起赞同 2添加评论分享收藏感谢收起写回答经验分享 | 一个互联网项目如何实现持续集成
本文来源于阿里云-云栖社区,原文点击。
想要了解一个互联网项目如何实现持续集成吗?想要知道持续集成过程中需要经历哪些阶段吗?想要明白开发测试同学如何配合工作吗?阿里巴巴持续集成持续交付平台——云效,将为大家呈现由真人配音、全程视频演示的项目的一生。精彩不容错过!
视频解读:
:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。:开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。:开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。
没有更多推荐了,使用Jenkins进行持续集成 - 廖雪峰的官方网站
使用Jenkins进行持续集成
/ Reads: 101809
上次介绍了开源项目如何利用Travis CI进行持续集成,但是如果你的项目不是开源项目,用Travis Pro就需要交钱了。
如果不想交钱,可以自己搭建CI环境,利用Jenkins CI进行持续集成。
首先,我们从Jenkins官方网站下载最新的war包。虽然Jenkins提供了Windows、Linux、OS X等各种安装程序,但是,这些安装程序都没有war包好使。我从未见过Jenkins这样把Java包做得如此简单的项目。只需要运行命令:
java -jar jenkins.war
Jenkins就启动成功了!它的war包自带Jetty服务器,剩下的工作我们全部在浏览器中进行。
第一次启动Jenkins时,出于安全考虑,Jenkins会自动生成一个随机的按照口令。注意控制台输出的口令,复制下来,然后在浏览器输入:
粘贴口令,进入安装界面,如果执行默认的安装,Jenkins就自动配置好了Maven、git等常用插件。最后,创建一个admin用户,完成安装。
用管理员账号登录Jenkins后,第一次使用前,需要在“系统管理”-&“Global Tool Configuration”-&“Maven”中新增一个Maven,直接输入一个名字,选中“自动安装”,Jenkins会自动下载并安装Maven:
然后,在Jenkins首页选择“新建”,输入名字,选择“构建一个maven项目”:
在配置页中,源码管理选择Git,填入地址:
默认使用master分支。如果需要口令,在Credentials中添加用户名/口令,或者使用SSH Key。
构建触发器指定了触发一次构建的条件。推荐使用最简单的配置“Poll SCM”,它的意思是,定时检查版本库,发现有新的提交就触发构建。这种方式对git、SVN等所有版本管理系统都是通用的。
我们在日程表中填入:
表示每分钟检查一次。如果你觉得太频繁,可以改成“每3分钟检查一次”:
*/3 * * * *
在“Build”中,默认的Root POM是pom.xml。如果pom.xml不在根目录下,就填入子目录,例如:wxapi/pom.xml。
在Goals and options中,填入需要执行的mvn命令:clean package,Jenkins将执行如下命令:
mvn clean package
特殊参数也在这里填写,如-DskipTests=true clean package。
保存后,就可以执行自动化构建了。
点击一个构建任务,可以在Console Output中看到控制台详细输出,便于出错排查:
如果要部署构建好的war包,可以在Post Steps中填上shell命令,直接用脚本部署。
另一种方式是创建另外一个构建项目,手动触发部署。
无论用哪种方式,都是为了确保编译、部署是通过CI服务器完成的,而不是某台开发机器。
如何创建Linux服务
有了Jenkins,我们就可以在内网或者租用一台EC2服务器来搭建CI环境,每月费用不到?100。推荐Ubuntu Linux系统。因为我们不想每次登录到Linux去启动Jenkins,也不想写脚本来启动服务。推荐安装JDK后,配合supervisor,把Jenkins直接变成一个服务。
可以在Linux上创建一个ci用户,然后,用supervisor启动并指定9001端口:
# /etc/supervisor/conf.d/ci.conf
[program:ci]
command=java -jar /home/ci/jenkins.war --httpPort=9001
autostart=true
autorestart=true
startsecs=30
startretries=5
Jenkins默认在当前用户的主目录下创建.jenkins目录,所有的配置文件、数据库都存放在里面,只需要备份这个目录就备份了整个CI配置。
这样,一个CI环境就搭建完毕。
Make a comment
Sign in to make a comment
You can sign in directly without register:
You need authorize to allow connect to your social passport for the first time.
WARNING: You are using an old browser that does not support HTML5.
Please choose a modern browser ( /
/ ) to get a good experience.

我要回帖

更多关于 Jenkins:项目持续集成管理 的文章

 

随机推荐