问题描述
我正在尝试使用Codecov提供的codecov.io
脚本将覆盖率报告上传到codecov-bash
。 bash脚本无法在运行 <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="pots.PHP">POTS</a>
<a class="dropdown-item" href="pans.PHP">PANS</a>
<a class="dropdown-item" href="bowls.PHP">BOWLS</a>
<a class="dropdown-item" href="cups.PHP">CUPS</a>
<a class="dropdown-item" href="mugs">MUGS</a>
<?PHP
if (isset($_SESSION['userId'])) {
echo '<a class="dropdown-item" href="includes/logout.inc.PHP">logoUT</a>';
} else {
echo '<a class="dropdown-item" href="login.PHP">LOGIN</a>';
}
?>
</div>
docker映像的Gitlab CI上运行。
以下是错误:
alpine:edge
这是我的$ /bin/bash <(curl -s https://codecov.io/bash)
/bin/sh: eval: line 107: Syntax error: unexpected "("
文件的相关部分:
.gitlab-ci.yml
脚本的第107行在 after_script:
- apk -U add git curl bash findutils
- /bin/bash <(curl -s https://codecov.io/bash)
函数的show_help()
函数内部:
This is non-exclusive,use -s "*.foo" to match specific paths.
我已经尝试了很多方法来解决该问题,但是找不到解决方案。在他们的GitHub存储库上,有一个似乎已联系在一起的问题,但建议的解决方案对我不起作用:Failing on busybox 1.26,incorrect flags passed to find
。
您可以在此处第434行找到作业的完整日志:https://gitlab.com/gaspacchio/back-to-the-future/-/jobs/788303704
解决方法
根据KamilCuk的评论,以下是将代码覆盖率报告正确上载到codecov所需的全部内容:
bash -c '/bin/bash <(curl -s https://codecov.io/bash)'
正如KamilCuk指出的那样,请注意结帐'
。
-c
标志在bash
的手册页中有这样的记录:
-c字符串
如果存在-c选项,则从字符串读取命令。如果字符串后面有参数,则将其分配给位置参数,从$ 0开始。
截止到今天,我不知道为什么有效。如果有任何线索,请随时编辑此答案。