Finish the bazel install before building addons #1135
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When running a dockerfile, bazel doesn't get installed completely after running the
tools/ci_build/install/bazel.sh
. Actually, when running the first build, bazel does 3 things:WORKSPACE
file.This delayed install isn't really compatible with how docker build works, since those install steps are not cached.
To get around the bazel hack of delayed install, I made another hack (fighting fire with fire XD) which is to clone the master branch and do a dry run of
bazel build
in a previous layer.In that way, when the cache gets invalidated at the COPY step, we already have a full bazel install, no need to download the ~300MB of additional stuff at every build.
Depending on your internet connection, it can make a big difference. For example, before, locally, running the sanity check took me 2-3 minutes (and my internet connection is ~10Mbps, quite good on the global scale). Now it takes me 20 seconds . I get a similar speedup when running the cpu/gpu tests with docker.