在travis CI上运行sh脚本:用1
问题描述:
退出命令
我正在运行sh脚本作为我的.travis.yml的一部分。它给了我下面的错误,尽管shell脚本没有失败。在travis CI上运行sh脚本:用1
的命令1.
退出我试着使用bash -x调试运行,并没有错误。 问题是,Travis认为构建失败,但它通过。
答
如man bash
页解释:
壳牌内置命令返回状态0(真),如果成功,和 非零(假)如果在它们的执行错误发生 。所有内置函数返回2的退出状态以指示不正确的用法。除非发生了语法错误,在这种情况下它具有非零值 离开
击本身返回最后执行的命令的退出状态, 。另请参见下面的exit builtin命令。
最后执行的命令是:
[ "$BUILD_CHROMIUM" == 1 ] &&_build_chromium_crx "${zip_file}" "${BUILD_METADATA[${CHROMIUM_TARGET}]}"
而且它被评价为具有false
退出状态1:
'[' 0 == 1 ']'
所以在这行的末尾添加|| true
修复它。退出状态将始终为0
另外,使用该修复程序更适合您的代码像exit 0
的预期行为等
退出[N ]导致shell以状态n退出。如果省略n,则退出状态是最后执行的命令的状态。在shell终止之前执行EXIT 上的陷阱。
所以你干净的功能trap _clean_chrome EXIT
不是最后被执行。
有关退出状态here的更多信息。
你的.travis.yml是什么样的?剧本里有什么? – meatspace
https://github.com/mosaadm/mooltipass/blob/master/.travis.yml – mosaad