How do you ensure what a dev builds and tags and pushes is coherent, meaning the tag matches the code commit it’s expected to?
I think builds must be possible locally, but i’d never rely on devs for the source of truth artifacts running in production, past a super early startup.
You can add all kind of verification scripts to git hooks, that trigger before and after someone pushes, like you do with GitHub actions. Whether you trust you devs less than your build pipeline is an organizational issue, but in our org only a few senior devs can merge to master.
* Consider whether it's not easier to do away with CI in the cloud and just build locally on the dev's laptop
With fast laptops and Docker you can get perfectly reproducible builds and tests locally that are infinitely easier to debug. It works for us.