I want to use the Bazel build tool to create my artifacts on the pipelines. What would be the best way to install and use bazel in the pipelines so I can have cached builds? Has anyone ever got it to work?
I got bazel to work in a pipeline and reuse the cached arifacts. Caching the default ~/.cache/bazel directory didn't work for me (complained about corrupt installation on repeated builds), but using --disk_cache flag did. Something like the following:
image:
name: l.gcr.io/google/bazel:3.4.1
pipelines:
default:
- step:
caches:
- bazel
script:
- bazel test --disk_cache=~/.cache/my-bazel //...
definitions:
caches:
bazel: ~/.cache/my-bazel
Hi Victor,
For running and install Bazel, you can do so similar as in a normal Bash environment. You can also use a Docker image from DockerHub that already has Basel installed. There are currently no official Bazel images, so you will need a community created one.
Documentation on configuring Docker images: https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-792298897.html
For caching, you configure specific directories to be cached. So in this case, you can use cache directories from Bazel.
Bazel provides some documentation on default caches here: https://docs.bazel.build/versions/master/output_directories.html
Pipelines Cache documentation can be found here: https://confluence.atlassian.com/bitbucket/caching-dependencies-895552876.html
Thanks,
Phil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.