As others have said, not everything going into main goes straight to production, but it's the start of the process that should see it deployed.
Nothing should go there unless it's a candidate for deployment.
To me continuous deployment means deploying features as they are ready (and the smaller the better), rather than batching up big 'releases'. It does not mean deploying code line-by-line.
The term "continuous deployment" was absolutely coined to describe automatically deploying the trunk into production after it passes some set of tests. That's a sufficiently scary idea that that for many people the meaning has become watered down over time.
Note that i'm not endorsing the practice. I find it scary too.
Nothing should go there unless it's a candidate for deployment.
To me continuous deployment means deploying features as they are ready (and the smaller the better), rather than batching up big 'releases'. It does not mean deploying code line-by-line.
All IMHO of course.