Thanks for reading!
Depends on the business, CI could means different things. There are businesses, like one of my former employers, who do very little to no testing. So CI in those cases would be simply building artifacts and making sure your code compile. For others, it could range between compile and various kind of automated tests: pre-merge, post-merge, e2e, etc...
Artifacts is specify here as not every deployments is container image based. For example: building a custom RPM to release via systemd over baremetal, or a new rom to flash onto custom chips. Artifacts stage for me encompass the build and stamp of code, resulting in various kind of artifacts to be stored in an artifact store. There, additional validation could be done before deployment is triggered automatically on-demand, on-schedule or semi-manual triggered.
Again, these could be present in some businesses and not others. The general idea is that you should invest more effort in understanding how your funnel looks like, what is the conversion rate between stages and where / how to invest to unblock engineers.