为了方便自动部署更新,很久利用gitlab社区版自建了一个代码托管平台,并且为一个项目写了一个CI/CD脚本,目的是在打tag之后可以自动部署更新部署包。昨天有个更新,打了tag之后,前面的构建流程都很顺利,最后一步的上传,重试了很多次都失败。打开日志一看,提示什么open file:
重新运行了一次,依然是同样的文件名,同样的错误。
首先去github的qshell项目下面查找是不是有遇到同样问题的同学:
qshell/issues/396
提示查找这个文件是不是存在,下载了构建产物下来:
发现产物的目录下面确实没有那个文件。
这就奇怪了,CI/CD的流程明明是按照顺序来的:
最后一步上传应该读取到的应该是最新的才对,但是看日志读取的好像就不是这一次的。于是,继续在issue里面查找:
最后终于找到了相关的issue:
qshell/issues/147
qshell/issues/124
原来是qshell会缓存目录列表,需要手动指定--rescan-local
每次都重新扫描目录。
这么坑的特性居然还不写在文档里。。。
按照上面的提示,在命令后面加了个--rescan-local
,果然成功上传了。
评论已关闭