Summary: The genrule-capture integration with Java relies on a buck config flag `infer.infer_bin=<path to infer>` (see test changes in `DEFS` below). In a CI environment where the infer binary is checked out under a random directory, this means that the buck genrule is keyed by a random string (the path to infer), and this defeats caching. Switch to the following contract: the genrule target does not expect a config flag at all. Instead it runs whichever `infer` binary is in the path. To make sure the binary is the same one with the originator, the capture integration runs buck under a modified `PATH` where the originator `infer` is sure to be the first matching entry. NB cache invalidation is still OK because we rely on `infer.version` buck config flag, which will be hashed into the rulekey. Reviewed By: jvillard Differential Revision: D16332696 fbshipit-source-id: 2975d5c26master
parent
998e7c8fe3
commit
af12e55344
Loading…
Reference in new issue