Design a Git Branching and Release Strategy for a Graphics Testing Repository
Context
You are designing the source control and CI/CD workflow for a graphics testing repository used to validate rendering pipelines across platforms and GPU architectures. The repo contains code (harness, shaders, test logic) and large binary test assets (e.g., textures, models, scenes). CI must run on GPU-equipped hosts and keep main stable while enabling rapid iteration.
Requirements
Propose a strategy that covers:
-
Branching and release model (including protected branches and code review).
-
Versioning and storage of large test assets (e.g., textures, scenes).
-
Submodules vs. monorepo trade-offs and a recommendation.
-
Techniques for bisecting regressions effectively.
-
Reverting bad changes quickly and safely.
-
Maintaining reproducible builds and test runs.
-
Integration with Jenkins to enable gated merges (merge only after CI passes).