Trunk-Based Development and Environments
When designing our initial pipelines, we mapped out the basic build, bake, deploy, integration testing, tag, and promotion stages. In Figure 14.9, we can see the MultiBranchPipeline Plugin, branches, and namespaces.
Figure 14.9: Branches and namespaces
This helped us to clarify where the responsibilities lie between our Git branches, our continuous integration tasks, continuous delivery tasks, and which OpenShift projects these would occur in.
Figure 14.10: Branches and activities modeling
Because we are following trunk-based development,5 our main/master branch is built, tagged, and promoted through the full lifecycle, that is, images are built, unit and functionally tested, and deployed into labs-test
with end-to-end testing prior to deployment within the labs-staging
project. For any short-lived feature branches or pull requests, we decided to only unit test, build, and deploy these...