bazel-toolchains icon indicating copy to clipboard operation
bazel-toolchains copied to clipboard

add ability to generate toolchain config w/o docker

Open amkartashov opened this issue 4 years ago • 2 comments

Main motivation: generate toolchain configuration for MacOS remote execution (which cannot use docker).

Also can be used on Linux, f.e. when remote workers are VMs and not containers.


Changes:

  • add runner package with Runner interface and 2 implementations: docker runner (almost unchanged code from master) and host runner
  • add option --runner
  • move some code to options package to avoid circular deps
  • add platform options for MacOS
  • when output is a directory, remove WORKSPACE from cc subdir

To make sure that host runner works identically with docker runner, I verified that host runner produces identical toolchain configuration for linux.

In other words, command:

./rbe_configs_gen_linux --runner=host --output_tarball=rbe_default_linux_host.tar --exec_os=linux --target_os=linux --cleanup=false --toolchain_container=l.gcr.io/google/rbe-ubuntu16-04@sha256:f6568d8168b14aafd1b707019927a63c2d37113a03bcee188218f99bd0327ea1

which runs inside container, produces archive with the same md5sum as command:

./rbe_configs_gen --toolchain_container=l.gcr.io/google/rbe-ubuntu16-04@sha256:f6568d8168b14aafd1b707019927a63c2d37113a03bcee188218f99bd0327ea1 --output_tarball=rbe_default_linux_docker.tar --exec_os=linux --target_os=linux

does (here rbe_configs_gen binary is built from current master and runs on the real machine, not container)

amkartashov avatar Jun 02 '21 17:06 amkartashov

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

:memo: Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

google-cla[bot] avatar Jun 02 '21 17:06 google-cla[bot]

@googlebot I signed it!

amkartashov avatar Jun 02 '21 17:06 amkartashov