CI 失败的原因与解决办法

 时间:2024-10-30 03:47:34

1、 错误地选择CI服务器市场上有很多种持续集成工具。CI服务器可以在云端也可以在本地。这里可以推荐一堆CI服务器,服务器的搭建可查阅《Linux就该这么学》。Jenkins是其中之一,但过去人们都盲目地使用它。为了适应Jenkins,我们时常不得不更改项目妥协。现在,情况有所改变,市场上出现了多种不错的CI服务器。面对如此众多的产品,选择适合自己所需的的确是一项挑战。搭建CI服务器需要耗费大量的时间和金钱。如果没有提前研究就贸然决定,那么前期的投入都付之东流。管理层经常犯的一个错误就是选择一款通用型CI服务器或者适用于所有平台的服务。设想一下,你的应用包含Web网站、IOS app、Android app,用一个通用CI并不是一个很好的办法。我们必须非常小心来选择CI服务器。推荐解决方案仔细研究市场并通过实验权衡各种选项。Slant上已经对主流的各种CI产品有优劣评估。关注特性,例如容器支持,平台支持,易用型,可用性等等。不要为了试图省钱采用一款通用的适应所有平台的CI产品,每一个平台都有不同的技术需求和挑战。和团队讨论并借鉴过去的经验。

2、 业余工程师在敏捷团队的每一位工程师都有很强的编程能力。但仅仅是是写代码和测试代码是不够的,还需要搭建环境的能力,运行命令行和编写脚本的技能,还要具有对各种构建工具和软件包管理工具的扎实的知识。最近,很多公司都开始讲IT架构迁移上云,所以还需要 Devops 技能。例如,AWS、AZure、Heroku,各种配置工具例如:bash、Ansible和 Chef,还有容器Docker and Kubernetes。最重要的是要具备至少一种脚本编程能力,比如Bash、Ruby或者Python。这当然并不意味者你需要学所有的东西,但你需要了解平台上的所有东西。假设一位从事IOS开发的工程师,他就需要了解各种相关的工具例如:Cocoapods、Carthage和Swift Package Manager。还有用于构建的工具,例如在APPLE 命令行工具之上的Fastlane、Rake和Make。术业有专攻,有些工程师擅长基本编程语言,比如 Java、Objective-C和Swift,并且对DevOps相关的各种工具相当熟悉。 有些工程师则习惯于使用IDE环境开发(比如Eclipse、IntelliJ和Xcode),他们不太熟悉使用终端敲入命令。还有些工程师擅长构建工具但写程序代码则弱一些。所谓业余工程师是指那些只会在IDE环境下编程,不会使用命令行和脚本工具的人,他们只喜欢使用GUI去做事而抗拒使用命令行或脚本。但是,CI服务器并没有GUI,所有的事情都只能用脚本来完成。如果你的团队有这类人,那CI就永远不可能成功,他们可能会开发一些质量低劣的自动化脚本,然后大家的时间都花在差错,该机和CI服务器切换上,而不是真正构建对业务有意义的功能。推荐解决方案招聘具有CI和DevOps基础知识的工程师。培训工程师,最好的办法是送他们去外面培训或者请内部有经验的CI专家培训。短期招聘一些CI专家来建立CI流程和分享经验。

3、 随意更改CI服务器配置许多CI服务器允许用户通过Web界面去更改CI服务器配置。这个方法对工程师而言的确比较方便。但是经常更改CI配置也会产生很多问题,比如把一些很重要的步骤错误地忽略掉。而且,如果每个人都有权限在上面更改的话,最后就搞不清楚谁,什么时间做了什么更改。当查错的时候,都需要花费大量的时间。经常性地更改CI服务器会导致很多问题。推荐解决方案把配置文件,脚本和其他相关文件都放到代码库集中管理。避免手工更改CI 服务器的配置。控制访问CI 服务器的权限。不允许用户更改一些特定的构建步骤。

4、 CI服务器性能差在开发过程中,程序员需要经常更新代码,这会不停地在CI服务器上触发重构流程。这意味着CI服务器需要不断地运行大量作业。例如从远端服务器下载,备份数据库,运行Docker容器等等,所以CI服务器必须快速,可靠,网络稳定。低配的CI服务器会影响整个构建流程,导致时间延长,测试时断时续,从而浪费大量的时间。推荐解决方案采用高配服务器。不要在CI服务器上安装不必要的软件。不要把CI服务器挂在Wifi上。科学地调度在CI服务器上跑的作业。不要手工安装软件。避免使用GUI连接 CI 服务器,使用SSH足够了。

5、 缺乏管理项目管理在整个CI实施中起到关键作用。必须对整个构建流程设定严格的指引,同时对任何不遵守指引的行为零容忍。在任何情况下都不能发布CI流程中断的软件。任何构建中断都要被视为紧急事件并以最高优先级进行修复。很多技术经理可以做到这一点,但一些没有CI经验的管理人员可能会命令继续开发而不顾代码质量。如果这样管理,CI实施则不可能成功。推荐解决方案建立CI流程并严格执行。培训项目经理并用于CI实施。

  • Maya2014软件安装教程,安装教程
  • Windows系统安装Adobe Dimension CC图解教程
  • C4D如何命令管理器
  • Test-Connection指令在Powershell中的简单用法
  • Java compiler level does not match解决方法
  • 热门搜索
    新学期新征程手抄报 手抄报资料 交通安全手抄报资料 植树手抄报内容 热爱劳动手抄报 文明出行手抄报 端午节手抄报。 漫游语文世界手抄报 重阳节手抄报图片大全 元旦手抄报文字