问题标签 [bazel-rules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

bazel - 如何从 Bazel 规则中查询兄弟规则

我希望能够在 Bazel BUILD 文件中执行以下操作:

Wherealphabeta是自定义规则。我希望beta能够访问规则的color属性,而无需添加标签属性。在 Bazel 查询中,我可以执行以下操作:alpha

bazel query 'kind(beta, siblings(kind(alpha, //...)))'

这给了我beta并排的alpha。我可以从beta规则的实现功能中以某种方式实现相同的目标吗?

我已经看到这是用这样的标签完成的

但我觉得这有点冗长,特别是因为有兄弟查询支持。

0 投票
2 回答
735 浏览

bazel - 使用`bazel test ...`时如何选择要运行的测试

我有一个使用 bazel 作为构建和测试系统的仓库。这个 repo 有 python 和 golang。有两种类型的测试,单元测试和集成测试。我想在我们的 CI 中在两个单独的测试步骤中运行它们。添加新测试时,我想自动在 repo 中发现新测试。我们目前正在使用bazel test .... 但这无助于我拆分单元测试和集成测试。是否有任何规则或现有方法可以做到这一点?谢谢。

0 投票
0 回答
85 浏览

java - 如何在自定义测试运行器中将 Bazel 标签解析为其 jar,以便能够提取打包的单元测试?

使用 Bazel,我们有一个宏,我们从 BUILD 文件中调用它来调用我们的自定义测试运行器。此宏对 java_test 进行本地调用,类似于:

在我们的 BUILD 文件中,调用宏的目标类似于:

将 srcs 传递给宏中的 args,希望在 CustomTestRunner 中我可以访问所有单元测试文件,这对于 glob(["src/test/java/**/*.java"] 标识的那些文件是正确的)。

但是,在 ":sdk_gen_model_test" 和 ":sdk_gen_controller_test" 的情况下,这两个是指生成单元测试的目标,这些目标会打包到一个 jar 中。不幸的是,这两个标签字符串按原样传递给 CustomTestRunner,我很难弄清楚如何从它们中解析生成的 jar。

所以问题是,我怎样才能让 Bazel 将这两个目标生成的文件列表传递给 CustomTestRunner,或者至少有一些方法可以将这些标签解析为 jar,以便我可以在 CustomTestRunner 中提取文件?

0 投票
1 回答
184 浏览

bazel - Bazel C++ 规则(cc_liibrary):为什么目标可以访问未通过 hdrs 公开的依赖项的标头?

可以在https://github.com/versemonger/bazel-test找到一个示例 repo

0 投票
1 回答
602 浏览

git - Bazel genrule:如何获取工作区目录的绝对路径?

我想创建一个 bazel gen-rule 来创建一个包含当前 git 提交哈希的头文件:

到目前为止,我还没有测试过 linux 版本(cmd),但只在 windows(cmd_ps)上测试过,它可以工作,但问题是当 powershell 执行时,它不在工作区目录(这是我的 git root)中。我需要用什么替换what_comes_here第一个 cd 到我的工作区的根目录?

0 投票
0 回答
23 浏览

bazel - git repo 中非 bazel 项目的 Bazel 规则

我们有一个使用 Bazel 构建的开源 Go 项目。我正在尝试集成另一个项目(https://github.com/cisco/go-hpke),但它是用“go build”构建的。集成它的最佳方法是什么?

我读了一些关于“new_go_repository”的东西,它应该会自动为新项目生成构建文件。但它已经被弃用了一段时间。

0 投票
1 回答
178 浏览

bazel - 如何在规则失败的情况下使 Bazel 构建失败?

我在我的应用程序中使用 NodeJS 中的 Bazel 规则。目的是简单地对一组文件进行 lint,如果 linting 失败,则构建失败。我目前遇到的是,尽管出现了 lint 错误,但构建还是成功的。

这是我BUILD文件的一部分:

我首先加载提示库,然后为我想要 lint 的所有 HTML 文件定义一个文件组。之后,我将规则与它的数据和参数一起使用。

要运行构建,我通过 npm 脚本使用默认选项:bazel build //...

0 投票
0 回答
138 浏览

java - Bazel项目环境中如何在本地获取maven依赖的jar文件

我正在使用 Intellij 中的 Bazel 项目来获取 Maven 依赖项。我按照以下链接在 Bazel 中使用 maven 依赖项:

https://github.com/bazelbuild/rules_jvm_external/releases/tag/4.0

我在我的 Bazel 项目中使用来自 maven 的 Junit 依赖项,但 Junit 依赖类未加载到外部库列表中,因此我遇到了问题,并且无法使用 Junit 的依赖类编写代码。请看下面的项目截图:

在此处输入图像描述

但是当我使用以下命令构建项目时,一切正常且完美:

看下面的截图:

在此处输入图像描述

那么任何人都可以建议我在使用 Bazel 时如何在外部库列表中获取 JUnit 依赖项,类似于我们使用 Maven 时,我们在 Maven 项目中本地获取 Maven 依赖项列表中的所有依赖项?

0 投票
0 回答
55 浏览

bazel - Bazel/Gazelle 链接命令

我想简化我们的 bazel monorepo 的依赖更新过程,我们想按照在根目录中定义的顺序运行这些命令BUILD.bazel(go 目录包含我们所有的 go 代码):

这些命令基本上会更新工作空间中的任何新依赖项,然后重建 go 代码。我猜这可以通过规则来实现,但我不知道如何让它工作。

0 投票
1 回答
32 浏览

bazel - 有没有一种简单的方法可以查看 Bazel“Make”变量扩展到什么?

是否有工具可以检查https://docs.bazel.build/versions/master/be/make-variables.html中的哪些变量实际上将扩展为?这可能有助于调试和理解这些变量。