Thirty-five

版权声明:听说这里让写版权声明~~~ https://blog.csdn.net/f_zyj/article/details/89436960

这是十分有意义的一周,也是十分悲伤的一周。

有意义是因为在完成对 b a g bag 建索引以后,开始搞自动化开发的工作,优化开发的流程,这套流程在国外已经十分成熟,并且有专门的工程师来做,叫做 D e v O p s DevOps

目前只是引入最简单基础的部分,通过 P i p e l i n e Pipeline c o m m i t commit 的代码在 D o c k e r Docker 中进行 B u i l d Build 并且 R e l e a s e Release ,最终将 C P a c k CPack 打包好的 . d e b .deb 文件放到 A r t i f a c t Artifact 上,实现可以通过 a p t g e t apt-get 在客户机上进行安装。

这一套开发流程要求在服务器上进行编译,并且只有编译通过了才能进行分支的合并,不仅可以降低开发设备的配置要求,还有利于 P r o j e c t Project 的版本控制。可以大大降低开发流程之间的耦合度,并且极大地减少了在新机器上部署时所需环境配置的难度。

折腾这些东西并不是十分顺利,毕竟这属于系统集成的问题,不同工具集成在一起的难度还是有的,尤其很多工具自身的坑特别深,不踩一遍坑,是搞不成的。最令人发指的是,很多工具要么没有官方文档,要么官方文档都存在十分明显的错误,最完犊子的是 G i t L a b GitLab 给的 A p i Api 里就存在大量执行不了的命令。

不过让我印象最深刻的坑,还是在 .gitlab-ci.yml \text{.gitlab-ci.yml} 文件里 before_script、script、after_script \text{before\_script、script、after\_script} 三个部分之间的耦合关系。起初以为三者是分开依次独立运行的,但是当我在 before_script \text{before\_script} 末尾运行一个 b a s h bash 脚本时,莫名其妙的出现了直接跳过 s c r i p t script 部分,去执行 after_script \text{after\_script} ,经过多次审查运行的这个 b a s h bash 脚本,一直没有找到问题所在,因为这个脚本本身就不存在什么问题。最后实在是病急乱投医,删掉了这个脚本的最后一行代码 e x i t   0 exit\ 0 ,结果恢复正常了。 W T F WTF ,在脚本末尾 e x i t   0 exit\ 0 是一个良好的习惯,标志着脚本正常运行结束了,没有返回异常代码,但是在这里竟然导致了 s c r i p t script 部分的命令被跳过了。

经过一段时间的分析,最终猜测是因为这个 .gitlab-ci.yml \text{.gitlab-ci.yml} before_script \text{before\_script} 部分与 s c r i p t script 部分 i n c l u d e include 进来合并成了一个子进程,所以遇见 e x i t   0 exit\ 0 以后直接结束了,但是并没有和 after_script \text{after\_script} 合并,因为他始终会执行。

这个操作骚得很,不知道是哪个丧心病狂的如此设计,将多个脚本合并成一个我可以理解,这样做可能会在效率或者资源上有一定优势,但是他娘的将前两部分合并在一起,第三部分单独搞的操作实在是应该拖出去胖揍一顿!!!

至于悲伤嘛,无辜躺枪,被同事坑了,他去找 H r Hr 谈薪资,却偏偏提到了我的名字,然后 H r Hr 顺利脑补出来我和他聊了些什么,接着找我谈话,狠狠的训了我一顿,本以为这样就结束了,没想到好事不出门,坏事传千里,这事儿又被老大知道了,明天可能又要被谈话了……我很伤心,很难过,但是又没法发怒,毕竟都是同事,也不是故意的,如果因为这个事儿发火儿,岂不是赔了夫人又折兵?

其实还是怪我自己,平时说话比较随意,有的话真不该多说,本来想着给同事更好的意见,保证他利益可以最大化,却没想到被同事坑的万劫不复。

哎,再也不当烂好人了!!!

倦鸟
2019.4.21 18:40

猜你喜欢

转载自blog.csdn.net/f_zyj/article/details/89436960