bazel是否支持在不同平台上进行远程执行? [英] Does bazel support remote execution on different platforms?

查看:287
本文介绍了bazel是否支持在不同平台上进行远程执行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

具体来说,我想在Mac主机上的Windows worker上运行测试.

Specifically, I want to run tests on Windows workers from a Mac host.

在不同机器上运行bazel远程执行者测试的评论表示这是Bazel团队正在努力的事情,但要确认.

Comments on running bazel remote executor test on separate machines indicate that it is something that Bazel team is working on, but want to confirm.

推荐答案

只需尝试一下!

在Windows 10计算机上构建并运行本地远程执行工作器:

Build and run local remote execution worker on your Windows 10 machine:

git clone https://github.com/bazelbuild/bazel.git
cd bazel
bazel build src/tools/remote:worker
bazel-bin/src/tools/remote/worker --work_path=/tmp/test --listen_port=8080
bazel-out/x64_windows-fastbuild/bin/src/tools/remote/worker.exe --listen_port=8080 --work_path=C:\tmp\lre --debug

注意:如果它抱怨缺少某些命令,例如zip,请打开MSYS Shell并运行实例pacman -Syu zip unzip

Note: If it complains that some commands are missing such as zip open an MSYS shell and run for instance pacman -Syu zip unzip

设置您的.bazelrc以进行远程执行:

Setup your .bazelrc to work with remote execution:

# Remote Build Execution requires a strong hash function, such as SHA256.
startup --host_jvm_args=-Dbazel.DigestFunction=SHA256

# Depending on how many machines are in the remote execution instance, setting
# this higher can make builds faster by allowing more jobs to run in parallel.
# Setting it too high can result in jobs that timeout, however, while waiting
# for a remote machine to execute them.
build:remote --jobs=8


# Set various strategies so that all actions execute remotely. Mixing remote
# and local execution will lead to errors unless the toolchain and remote
# machine exactly match the host machine.
build:remote --spawn_strategy=remote
build:remote --strategy=Javac=remote
build:remote --strategy=Closure=remote
build:remote --genrule_strategy=remote
build:remote --define=EXECUTOR=remote

# Enable the remote cache so action results can be shared across machines,
# developers, and workspaces.
build:remote --remote_cache=localhost:8080

# Enable remote execution so actions are performed on the remote systems.
build:remote --remote_executor=localhost:8080

# Enable encryption.
#build:remote --tls_enabled=true

# Enforce stricter environment rules, which eliminates some non-hermetic
# behavior and therefore improves both the remote cache hit rate and the
# correctness and repeatability of the build.
build:remote --experimental_strict_action_env=true

# Set a higher timeout value, just in case.
build:remote --remote_timeout=3600

build:remote --auth_enabled=false

# Since we're testing remote execution, let's make sure it always actually
# happens.
build:remote --remote_accept_cached=false
test --cache_test_results=false

test --test_output=errors

# TODO(b/77217487): Needed for C++ builds until fix to
# https://github.com/bazelbuild/bazel/issues/4883 is available.
build --nocheck_visibility

build:debug --verbose_failures
build:debug --explain=explain.txt
build:debug --verbose_explanations
build:debug --toolchain_resolution_debug
build:debug --subcommands

现在从Mac进行远程构建(当然localhost:8080应该更改为Windows 10计算机的IP):

Now do a remote build from your Mac (of course localhost:8080 should be changed to the IP of your Windows 10 machine):

bazel build --config=remote //:HelloWorld

现在执行远程执行

bazel run --config=remote //:HelloWorld

注意:从 https://github.com无耻地被盗/bazelbuild/bazel/issues/4962

这篇关于bazel是否支持在不同平台上进行远程执行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆