You can get good traceability for your builds by using Go’s custom pipeline labels effectively.
In the above diagram, each box represents a pipeline. This is a situation where there are three teams whose work needs to be integrated under the umbrella of a project X. Each box has three lines of text with the following convention.
Line 1 is the name of the pipeline
Line 2 is the custom pipeline label spec (see diag below for how to specify)
Line 3 is the resulting pipeline label after a certain run of the pipeline
So the general technique here is to simply use the upstream label for downstream pipelines with just one upstream dependency. For pipelines with multiple upstream dependencies (e.g. project-X-integration), you could use a combination of upstream labels and new prefixes.
In Part 4 of our series “How do I do CD with Go?”, I will discuss the relationship between Go environments and environment variables.
“How do I do CD with Go?” blog series:
- Part 1: Domain model, concepts and abstractions
- Part 2: Pipelines and value streams
- Part 3: Traceability with upstream pipeline labeling
- Part 4: Go environments
- Part 5: The power of pipeline templates and parameters