Bazel technique for Continuous Delivery
Blog post from Aspect Build
The text discusses the concept of Continuous Delivery (CD) and its role in software deployment pipelines, distinguishing it from Continuous Integration (CI) and deployment processes. It suggests treating CD as the stage where built artifacts are uploaded to a known repository, emphasizing the importance of separating responsibilities among CI, CD, and deployment systems. The text further explores the notion of "deliverable" artifacts, which should include both the binary or files and the logic for uploading them. Various methods for identifying and delivering only "changed" targets are outlined, with a preference for empirical determination due to the limitations of predictive tools like bazel-diff and target-determinator. The process of determining deliverable targets involves using a hashing mechanism to avoid redundant deliveries by comparing current and previously delivered hashes. Additionally, the document touches on the debugging process for determining changes in deliverables and the execution of delivery using Bazel with stamping enabled.