Commit 0cadabe1 authored by Emanuele Aina's avatar Emanuele Aina

long-term-reproducibility: Diagram for pipelines inputs and outputs

Add diagrams describing the inputs and outputs of the build pipelines
and how they can be tracked and pinned down to reproduce a past build.
Signed-off-by: Emanuele Aina's avatarEmanuele Aina <emanuele.aina@collabora.com>
parent 5c8ab9a5
......@@ -67,6 +67,23 @@ unrelated changes. The Apertis goal of reliable, reproducible builds does
not only help developers in their day-to-day activities, but also gives
them the tools to address this specific use-case.
The first step is to ensure that all the inputs to the build pipeline are
version-controlled, from the pipeline definition itself to the package
repositories and to any external data.
To track which input got used during the build process the pipeline stores
an identifier for each of them to uniquely identify them. For instance,
the pipeline saves all the git commit hashes, Docker image hashes, and
package versions in the output metadata.
![](media/pipeline-input-output-tracking.svg)
While the pipeline defaults to using the latest version available in a specific
channel for each input, it is possible to pin specific version to closely
reproduce a past build using the identifiers saved in its metadata.
![](media/pipeline-input-output-rebuilding.svg)
## Reproducible build environments
A key challenge in the long term maintenance of a complex project is the
......
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment