commit | 1a80bb87fef46017b1c2e440085d0741dadb7328 | [log] [tgz] |
---|---|---|
author | ulfjack <ulfjack@google.com> | Tue Nov 26 07:52:35 2019 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Tue Nov 26 07:53:38 2019 -0800 |
tree | f11537a7dadf385ab4be4428ff517740805cd2ac | |
parent | 5be24a81ff374ab7690ef08a933501f6eaf05efe [diff] |
OutputService: simplify interface Originally, OutputService.createSymlinkTree had to read the MANIFEST file in order to get the list of symlinks. This was problematic, because the file is not round-trip safe for paths containing whitespace characters. In addition, it was responsible for creating a symlink from the output manifest location to the input manifest location, which all subclasses implemented in the same way. Instead, it now receives a map representation of the symlinks, and the creation of the output manifest symlink is the responsibility of the action. The current change is primarily a cleanup to reduce code duplication. However, this change also makes it possible to globally change the contents of the output manifest. By making it a non-symlink (e.g., a hash of the symlink map), we can decouple the symlink tree action from the manifest writing action. We could run both in parallel, or even skip writing the input manifest entirely (though note that the input manifest is currently still necessary in some cases because we use an external subprocess to create the symlink tree). PiperOrigin-RevId: 282564612
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only 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.
Follow our tutorials:
See CONTRIBUTING.md