There are always multiple apps over the period. App repo can only do format, lint and tests. Developer teams send PR to their respective apps and trigger the “test pipeline”. Check frappe, erpnext, hrms repos.
There needs to be additional repo to combine and build multiple apps when you create a release of a bench (combination of apps). Devops or automated requests from app repo(s) can trigger the “build pipeline”. check frappe_docker repo
“builder repo” combines the apps as part of build pipeline as image and push it to (private or public) image registry.
If you are sure that you will never have more than 1 app, then combine the builder-repo and app repo pipelines in app repo.
Once the image is ready you can deploy it to multiple environments, e.g. test, dev, staging, production.