4 ms·
I'd give this a look: https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/bazel https://github.com/GoogleCloudPlatform/cloud-builders/tree/m... (u
by jacobparker 10y ago
I'd give this a look: https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/bazel https://github.com/GoogleCloudPlatform/cloud-builders/tree/m... (unfortunately key links to Bazel docs are 404'ing.)
Bazel is a general purpose build system that focuses on reproducibility (same build inputs -> same build outputs) and strict dependency specification (at various levels: file, subsystem, external package fetching etc.) enforced by sandboxing which allows for fast incremental builds. Bazel is the open-source version of Google's internal build-system.
More info here: https://bazel.build/ https://bazel.build/
How external resources are handled: https://bazel.build/versions/master/docs/external.html https://bazel.build/versions/master/docs/external.html
Obviously Bazel requires some buy-in which may be unappealing (at least for existing projects:
migration/supporting multiple build systems.) There are, however, serious benefits (and a larger, but nascent, ecosystem of related open-source tooling.) The biggest gap at the moment is supported languages/etc.
(I don't work for Google, I just like Bazel.)
- ImJasonH 10y agoThanks for pointing out the broken links, I'll fix those shortly. Until then, https://bazel.build/versions/master/docs/be/docker.html https://bazel.build/versions/master/docs/be/docker.html has the relevant information about Docker in Bazel.
- ravdovid 10y agoThanks for pointing out the broken links, they are now fixed. (I'm on the Google team behind this project.)
- philip1209 10y agoWe just open sourced our monorepo which uses Bazel - https://GitHub.com/staffjoy/v2 https://GitHub.com/staffjoy/v2 It has some major speed benefits. But it's not turnkey. Setting it up is hard. Its dep management in Go isn't compatible with lint, vet, etc. We never got node modules installing with Bazel.
- skj 10y agoIf you send me an email (skelterjohn at google dot com) I'd love to help you get things working with that repo and GCCB.
- TheGuyWhoCodes 10y agoI tried to compile tensorflow recently, it uses Bazel as the build system. When compiling it downloads external dependencies to be used during the build. It failed to retrieve some dependencies and I had to restart the proceeds only to fail on other dependencies and it seem to download all of them again (even though it was successful in downloading the other dependencies). Googling for this issue I found out that if you fail and try you might even be blocked (from the servers) for trying to fetch too many dependencies and the solution was to "try later"...