注册

DevOps发版失败,发版仿佛回到了石器时代😣

前言


事情是这样的,公司项目发版使用的 Azure DevOps,前段时间测试老师找过来说代码发布失败了,有代码报错,让我查一下,刚开始我猜测应该代码哪里写的有问题,之前也遇到过这种问题,改一下应该就行了


万万没想到,世界真奇妙......



项目框架及版本



  • JS框架 Angular: 8.1.0
  • TypeScript: 3.4.3
  • UI库 devextreme:19.2.5

来分析一下遇到的问题


本地排查


下面是报错截图,看里面的内容似乎是代码报错导致的



具体看一下,看起来像 xxx.ts 里面的代码有问题,npm run build-uat 命令导致的发版失败



在代码仓库中找到了对应的报错文件并找到了控制台中报错行数 11:30, 看着没有问题,整个文件的代码都看了,没有异常的地方



npm run start 本地环境运行查看项目相关报错文件,查看报错情况,没有报错,使用 npm run build-uat 本地打包也正常,没有报错



为了排查个人电脑独特环境配置情况下才正常的情况,找了其他两个前端开发老师执行 npm run build-uat 打包命令,也都正常



果然,我写的代码怎么会有这种问题!😏


本地排查已经说明代码没有问题了,问题应该出在 DevOps 服务的环境上面


服务端排查


把本地的代码 pushGitLab 仓库,重新在 DevOps 平台页面上生成测试效果,发现不管生成几次,都是这个报错,DevOps 服务器不知道地址,也没有权限账号,找到有权限的架构部门相关的技术老师,说明原因后,让别人帮忙把代码单独在服务器上的镜像中运行看看效果


这个是单独在服务器上运行以后的报错截图,还是这个报错



第二天再去找架构部负责帮忙排查的那个老师,那个老师说排查后没检查出什么原因,发版的话先走其他方式吧,后面再研究研究看看,提供了一个临时方案


临时方案


由于 npm run build-uat 命令打包失败,又不能不用 DevOps 平台,让我们把线上的打包的环节放到本地,把 DevOps 的上的 installbuild 安装打包命令先去掉,只留下其他命令脚本;把代码仓库的 .gitignore 中的 dist 文件忽略放开,然后提交把打包好的 dist 文件提交到线上的仓库中



都这年头了自动化发版不能用,仿佛一下子回到了技术领域的石器时代




现在的样子


架构部门的技术老师没搞定,反馈给公司的架构师看了,说帮忙弄下,后来也没了动静,然后就一直用的临时方案到现在,就是我们组的这几个前端开发悲剧了,每次提交都是拉一堆文件,然后本地打包,每次打包十几分钟,然后再提交一堆上去,每次几十个文件,仓库越来越大,本地运行打包速度也会越来越慢



以目前的情况,感觉项目仓库迟早要崩呀 😟



这种问题怎么解决




  1. 和架构部的人也不熟,上次找别人还是和我们这边测试负责人一起去的,别的部门也有自己部门的任务,可能帮忙看了看没找到问题后面也就没顾上再看了,自己直接去找到级别也不够,只能再次给我们这边的测试负责人和部门负责人反馈,推动上级让他们去协调跟进




  2. 技术层面上分析这个打包问题,看起来是 DevOps 中的 Docker 镜像容器环境出的问题,那么是不是可以本地安装Docker 拉取 Node 镜像搭建前端环境容器,本地在 Docker 容器中进行测试,如果没问题,可以把本地的 Docker 镜像导出来提供给架构部再次测试





还有更好的解决方案吗?


作者:草帽lufei
来源:juejin.cn/post/7252540034677522490

0 个评论

要回复文章请先登录注册