如何查看Bazel的构建输出?

7

如何实时查看bazel构建的stdout输出?

我想在bazel构建过程中查看所有写入stdout的日志。

这些方法都无法显示ls命令在失败之前的输出。

$ bazel build --show_progress --worker_verbose --verbose_failures --verbose_explanations=true -s --test_output=streamed :build

genrule(
  name = "build",
  cmd = "ls && sleep 60 && exit 1",
)


$ bazel build --show_progress --worker_verbose --verbose_failures --verbose_explanations=true -s --test_output=streamed :build
WARNING: --verbose_explanations has no effect when --explain=<file> is not enabled
INFO: Analyzed target //:build (0 packages loaded, 0 targets configured).
INFO: Found 1 target...
SUBCOMMAND: # //:build [action 'Executing genrule //:build']
(cd /private/var/tmp/_bazel_kevinsimper/f9e6a72c146c5ad83b84a8ebf539f8b2/execroot/__main__ && \
  exec env - \
    PATH=/usr/local/sbin \
  /bin/bash -c 'source external/bazel_tools/tools/genrule/genrule-setup.sh; ls && sleep 60 && exit 1')
ERROR: /Users/kevinsimper/testproject/BUILD:1:1: Executing genrule //:build failed (Exit 1)
BUILD
TESTFILE
Target //:build failed to build
INFO: Elapsed time: 60.256s, Critical Path: 60.04s
INFO: 0 processes.
FAILED: Build did NOT complete successfully
2个回答

3

除非在测试时使用--test_output=streamed标志,否则无法在执行期间流式传输操作stdout/stderr。


1

您可以采用一种不光彩的方法。如果您的构建包括少量的长时间操作,那么可以在 bazel-out/_tmp/actions/std{err,out}-* 中实时监测输出。这对我在Bazel 3.1.0中有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接