Hi!
I've got a scenarios regarding dependency chains that has target with tags = no-remote and have trouble figuring those scenarios out.
scenario:
say that you have a target A built remotely, which then depend on target B, which is built locally (due to the tags = no-remote), which in turn depend on target C that is built remotely and cached. e.g
target A <-- target B (no-remote) <-- target C.
Im confused, since bazel does not complain that target B does not exists or at least the objects produced does not exists. I've look at the trace log of some builds. I seems like Targets A and C are downloading results from the cache although i cant see that Target B is uploading all the time. Im a bit uncertain how it works.
outcome:
1. Will this force all targets to be built locally?
2. Will target B force target C to be built locally?
3. Will the "state of chained targets" be lost since 2 is remote and 1 is local?
- Like Target A and Target C is built on machine X and Target B is on machine Y, how does bazel string the dependencies together?
3. Lets say the target B is cached from another run where "no-remote" is disabled. Will target B be built and upload but target A will only use the cached version first?
Thanks in advanced.
//Per