- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们将 clang-tidy 作为 Action 监听器运行。它可以很容易地消耗与 gcc 编译一样多的 CPU,如果不是更多的话。
这些是否会被计入 --jobs 计数,或者我们是否必须自己为听众计划(例如,当“正确调整”机器/容器/任何东西时)?
最佳答案
对,他们是。
演示
我正在运行 3 个 Action + 3 个额外 Action 。他们每个人都睡 3 秒钟,并在他们开始和结束时打印出来。
与 --jobs=2
,您可以看到leaf2 和leaf3 一起构建(从15:10:00 开始),然后是leaf1 和leaf1 监听器(在15:10:03),最后是leaf2 监听器和leaf3 监听器(在15:10:06)。
$ bazel clean >&/dev/null && time bazel build //:root --jobs=2 --experimental_action_listener="//:clang-tidy-listener" 2>/dev/null
Start action listener at 15:10:03, argc=1, argv=(--extra_action_file=bazel-out/local-fastbuild/extra_actions/clang-tidy/cc4b710d2c96f16eb0bcc5df6f009f08.xa)
Done action listener at 15:10:06
Start action listener at 15:10:06, argc=1, argv=(--extra_action_file=bazel-out/local-fastbuild/extra_actions/clang-tidy/3001ea27a871bf7b111ee4bbbc1d79dc.xa)
Done action listener at 15:10:09
Start action listener at 15:10:06, argc=1, argv=(--extra_action_file=bazel-out/local-fastbuild/extra_actions/clang-tidy/f88e13a970ce3a66354583c477067b29.xa)
Done action listener at 15:10:09
real 0m9.698s
user 0m0.004s
sys 0m0.012s
$ cat bazel-genfiles/root.txt
leaf1.txt
start: 15:10:03
start: 15:10:06
leaf2.txt
start: 15:10:00
start: 15:10:03
leaf3.txt
start: 15:10:00
start: 15:10:03
--jobs=8
,所有 Action 都在 15:08:58 开始:
$ bazel clean >&/dev/null && time bazel build //:root --jobs=8 --experimental_action_listener="//:clang-tidy-listener" 2>/dev/null
Start action listener at 15:08:58, argc=1, argv=(--extra_action_file=bazel-out/local-fastbuild/extra_actions/clang-tidy/f88e13a970ce3a66354583c477067b29.xa)
Done action listener at 15:09:01
Start action listener at 15:08:58, argc=1, argv=(--extra_action_file=bazel-out/local-fastbuild/extra_actions/clang-tidy/3001ea27a871bf7b111ee4bbbc1d79dc.xa)
Done action listener at 15:09:01
Start action listener at 15:08:58, argc=1, argv=(--extra_action_file=bazel-out/local-fastbuild/extra_actions/clang-tidy/cc4b710d2c96f16eb0bcc5df6f009f08.xa)
Done action listener at 15:09:01
real 0m3.609s
user 0m0.004s
sys 0m0.016s
$ cat bazel-genfiles/root.txt
leaf1.txt
start: 15:08:58
start: 15:09:01
leaf2.txt
start: 15:08:58
start: 15:09:01
leaf3.txt
start: 15:08:58
start: 15:09:01
//:BUILD
:
load(":myrule.bzl", "myrule")
genrule(
name = "root",
srcs = [
"leaf1",
"leaf2",
"leaf3",
],
outs = ["root.txt"],
cmd = "( for f in $(SRCS); do basename $$f ; cat $$f ; echo ; done ; ) > $@",
)
[myrule(name = "leaf%d" % i) for i in [1, 2, 3]]
sh_binary(
name = "listener",
srcs = ["listener.sh"],
)
action_listener(
name = "clang-tidy-listener",
mnemonics = ["FooAction"],
extra_actions = [":clang-tidy"],
)
extra_action(
name = "clang-tidy",
tools = [":listener"],
cmd = "$(location :listener) --extra_action_file=$(EXTRA_ACTION_FILE)",
)
//:myrule.bzl
:
# Based on https://bazel.build/versions/master/docs/skylark/cookbook.html#simple-shell-command
def _impl(ctx):
output = ctx.outputs.out
ctx.action(
outputs=[output],
mnemonic="FooAction",
command="( echo \"start: $(date +%%H:%%M:%%S)\" ; sleep 3 ; echo \"start: $(date +%%H:%%M:%%S)\" ; ) > %s" % output.path)
myrule = rule(
implementation=_impl,
outputs={"out": "%{name}.txt"},
)
//:listener.sh
:
#!/bin/bash
echo "Start action listener at $(date +%H:%M:%S), argc=$#, argv=($@)"
sleep 3
echo "Done action listener at $(date +%H:%M:%S)"
关于bazel - --experimental_action_listeners 是否计入 --jobs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44449785/
当我调用 Bazel 命令并出现分析错误时,它只显示其中之一。例如: ERROR: /Users/oliver/src/github.com/monzo/wearedev/service.transa
我们正在生成许多 Go 源文件作为我们构建的一部分。以前我们使用了 genrule ( example here ) 导致生成的文件存储在 bazel-genfiles/ . 我们最近切换到使用自定义
有没有办法在 Bazel 中指定可选依赖项? 我想制定一个规则来在某种程度上反射(reflect) Kitware 的 ExternalData , 但我想看看我是否可以启用开发人员在树中编辑文件的工
我想知道特定于平台的默认 Bazel 构建标志是否可能。 例如,我们想要使用 --workspace_status_command,但这必须是 Linux 上的 shell 脚本,并且必须指向 Win
具体来说,我想从 Mac 主机对 Windows 工作人员运行测试。 评论 running bazel remote executor test on separate machines表明这是 Ba
我想知道特定于平台的默认 Bazel 构建标志是否可能。 例如,我们想要使用 --workspace_status_command,但这必须是 Linux 上的 shell 脚本,并且必须指向 Win
有没有办法指示 bazel 列出它找到的所有目标而不构建或测试它们? 最佳答案 bazel query 可用于发现 bazel 工作区内的目标(无需构建/测试它们) 例如; 查找给定包中的所有标签:
(来自https://groups.google.com/d/msg/bazel-discuss/XrtKLhH1bgI/B9xZn_aVAAAJ) 在我们使用 Bazel 构建的项目中,我使用了远程
在 bazel 构建期间,有一堆文本飞过,暂时显示然后从屏幕上删除。这发生在整个构建过程中。我尝试了几种重定向技术,将 stderr 重定向到标准输出但无济于事。我还尝试了 bazel 的详细标志。
我是 Bazel 的新手,并在 CentOS 7 上安装了 Bazel。我使用版本为“0.14.0- (@non-git)”的“yum install bazel”安装了它 启动 bazel 时,它总
我有几段 C++ 代码(模板、宏等),它们在使用某些方式时无法编译。手动编写一段代码来完成不应该编译的事情并验证它是否编译是很容易的,但这不是自动化的。看起来 Bazel 应该能够编译一段代码并自动验
鉴于使用 bazel 构建的相当大的存储库和多种语言的大量第三方依赖项(包括重型 docker 容器),我遇到以下问题: 运行 Bazel 查询会触发下载许多这些依赖项,从而导致查询性能下降。因此,问
假设我有一个 Bazel 宏,它使用生成器规则在给定输入文件的情况下生成输出文件: def my_generator( name, input_file,
在我的代码库中,在多个目标(cc_binary、cc_library 等)中包含相同的源文件通常是错误的。我想检测这个。 我可以 bazel query labels(srcs, //target:n
您好,我想读取 .bzl 文件中本地文件的内容。 print(onefile.basename) #content = ctx.read #content=ctx.file.o
我确信这已记录在某处,但无法在任何地方找到答案。 如果我有: ```bazel_rule( name = "foo", srcs = ["foo.cpp"], attr_bar
我正在开始使用 Bazel,如果有一种简单的方法可以集成 buildifier,我就在运行每次运行 bazel build 时? 最佳答案 您可以将此实现为测试规则,其中 ctx.file_actio
bazel test命令对标记为 size = small 的测试使用默认超时 75 秒在我的设置中(版本 0.12.0)(而 documentation 提到这是 60 秒) 有没有办法在 baze
$ python gencpp.py 此命令生成一个 cpp 文件 foo.cpp在工作目录中。 我想在 bazel 中运行此命令建之前可以包含foo.cpp在 cc_binary的 srcs属性。
一遍又一遍地阅读 Bazel 文档,以至于没有什么新鲜的地方,但我似乎无法掌握如何为 native 以外的变体设置配置和变体,例如--cpu 和--compilation_mode。 为了解释我对配置
我是一名优秀的程序员,十分优秀!