cdwithgo3-1-sriram

How do I do CD with Go?: Part 3: Traceability with upstream pipeline labeling

You can get good traceability for your builds by using Go’s custom pipeline labels effectively.

cdwithgo3-1-sriram

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

cdwithgo3-2-sriram

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