Delete BuildEventServiceAbruptExitCallback and handle BEP upload exceptions in the BES module.

Since the closing of all the BEP transports now happens in the BES module we don't need to use the BuildEventServiceAbruptExitCallback, instead we make use of SettableFuture.setException to signal a problem with the upload. This makes the code (a lot) cleaner by removing one layer of indirection for the error handling of the BEP uploads.

As a consequence of this change, all BES failures are now reported in afterCommand (or beforeCommand for the async case) which means that, for instance, if the connection with BES times out we'll wait until the build is finished to report the time out, instead of doing it mid-build. Exiting early was a leftover of the original design of the BES code but given the amount of complexity it adds and the little benefit we've decided to drop it.

PiperOrigin-RevId: 244064861
12 files changed
tree: c6d61c2afb87ae680d081b69e998cb6e7ab6dd49
  1. .bazelci/
  2. examples/
  3. scripts/
  4. site/
  5. src/
  6. third_party/
  7. tools/
  8. .gitattributes
  9. .gitignore
  10. AUTHORS
  11. BUILD
  12. CHANGELOG.md
  13. CODEOWNERS
  14. combine_distfiles.py
  15. combine_distfiles_to_tar.sh
  16. compile.sh
  17. CONTRIBUTING.md
  18. CONTRIBUTORS
  19. distdir.bzl
  20. ISSUE_TEMPLATE.md
  21. LICENSE
  22. README.md
  23. WORKSPACE
README.md

Bazel

{Fast, Correct} - Choose two

Build and test software of any size, quickly and reliably.

  • Speed up your builds and tests: Bazel only rebuilds what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.

  • One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.

  • Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.

  • Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.

Getting Started

Documentation

Contributing to Bazel

See CONTRIBUTING.md

Build status

Bazel is released in ‘Beta’. See the product roadmap to learn about the path toward a stable 1.0 release.