中止基于 php 警告/错误的构建

Posted

技术标签:

【中文标题】中止基于 php 警告/错误的构建【英文标题】:abort build on php warnings/errors 【发布时间】:2014-11-05 09:47:54 【问题描述】:

我们有几个 php 脚本与其他非 php 命令封装在一个 shell 脚本中,如下所示:

build_stuff.sh

mv things stuff
cp files folders
composer install
php bin/console some:command
php bin/console some:other:command

然后在“执行 shell”构建步骤中调用此 shell 脚本。

sh ./build_stuff.sh

一旦出现 php 错误/警告,是否有可能将构建中止为“失败”?

这样下一个命令就不会被执行。 并且仍然在一个脚本中维护所有命令。

...

我找到了 Log Parser Plugin,但我想在错误发生时中止,而不是在之后继续解析日志。

我可能会捕获 PHP 退出代码,如下所述:Retrieve exit status from php script inside of shell script

但是您将无法立即看到 php 脚本的文本输出,对吗?

【问题讨论】:

错误码可以返回给shell。警告必须被覆盖才能产生相同的效果。 【参考方案1】:

将它们与双&符号结合起来就可以了。在下面的示例中,cmd2 将仅在 cmd1 成功时执行(返回零退出状态)。

cmd1 && cmd2

它将与作曲家一起工作;但您的命令可能需要修改才能发送正确的退出代码。

【讨论】:

以上是关于中止基于 php 警告/错误的构建的主要内容,如果未能解决你的问题,请参考以下文章

错误处理

一起搞懂PHP的错误和异常

MSVC2013:如何避免使用错误的预构建脚本中止构建过程(错误 MSB3073: :VCEnd" 退出,代码 -1)

由于 yeoman mean 中的警告,grunt 服务中止

“致命错误:已达到 '100' 的最大函数嵌套级别,正在中止!”的解决方案在 PHP 中

JSLint 错误:“预期在 EOF 处换行”,与 Beautify 插件冲突