做为版本构建工具,Jenkins确实方便且高效。但在使用过程中,还需要多多实践。
对于初学者,最初的学习,仅需要保证各个步骤都能正常的运行衔接即可。达到这样的效果,我们可能会觉得编译工程已经可以投入使用了。我自己就是这么认为的。直到遇到这样的情况——“构建过程出错,但依然走到了发布流程,导致错误的版本流出到测试”
最初以为是Jenkins工具的BUG,增加了构建步骤——“构建之前清除版本缓存目录,如构建失败则缓存目录为空,Archiving artifacts匹配不到文件,触发失败”。触发了几次编译后,发现这样的处理完全莫名其妙,如果构建过程中向缓存目录添加了个别文件,Archiving artifacts依然能匹配到。只要能匹配到就会发布,尽管结果不完整。
梳理构建流程过程中的异常处理机制,发现是在shell脚本的执行时,没有对进程抛出的异常进行处理的步骤。
基于此,问题解决思路出现:
方法1.增加异常获取处理
方法2.变更shell脚本执行方式,由.变更为source
关于shell的三种执行方式sh、source和exec之间的差异,可参考以下文章
https://blog.csdn.net/lingeio/article/details/97122463?ops_request_misc=&request_id=&biz_id=&utm_medium=distribute.pc_search_result.none-task-blog-2alles_rank~default-1-97122463.pc_search_es_clickV2&utm_term=shell+source+build.sh&spm=1018.2226.3001.4187
感谢博主提供的思路,采用source后完美解决问题