Improve specs and error handling in artifact creation
What does this MR do and why?
This is based on !106740 (comment 1325030204).
To make reviewing !106740 (merged) easier. The bulk of the changes in Ci::JobArtifacts::CreateService
specs were extracted into this new MR.
There are no significant behavior changes here, more on improving code coverage because the current state of specs mostly covers local uploads only.