以下类似项目的目的是将Bazel用于构建软件以外的其他事情?
他们只是方便地为run
命令提供环境(而不是构建可移植的可执行文件)还是我错过了什么?
我能说的最好的一点是,根据知识的变化,Bazel只能用于运行E2E测试的子集。
答案 0 :(得分:2)
免责声明:我对k8s和docker仅有一点了解。
Bazel不仅用于构建和测试,还可以部署,就像您在那些项目中发现的规则一样。
我能说的最好的一点是,根据知识的变化,Bazel只能用于运行E2E测试的子集。
正确,但也将测试扩展到部署。如果您只更改了注入图像中的Go二进制文件中的单个字符串,Bazel便可以将rules_k8s,rules_docker和rules_go用于:
值得注意的是,如果您未更改源文件,Bazel会由于其可复制性而始终创建具有相同摘要的图像。这意味着,即使您两次执行bazel run
两次以上,您现在也可以信任部署工作流来不重新部署/重新启动Pod。
有关更多信息,请查看BazelCon 2017演讲:Using Bazel for Fast, Correct Docker Deployments w/ Databricks
有趣的事实:您也可以使用bazel run
从0.15.0开始为构建目标启动REPL。 Haskell和Scala规则使用此规则。