Committing CI artifacts

One of the main uses for a CI pipeline is to build artifacts for your application, such as installing your dependencies using Composer or npm, or using build tools to perform tasks such as building your CSS and JavaScript assets.

Performing these tasks in a CI pipeline means the resulting files can be ignored from your code repository and not committed - making your commits smaller and easier to review, and less likely for you to encounter merge conflicts.

The alternative approach is to not use a CI pipeline and to perform the tasks manually and commit them to your repository.

This introduces a separate set of challenges, but people like having the files in their repository and not worrying about failures in their pipeline.

Which do you prefer?