Enable easier control over expiration of tagged artifacts
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=17260) </details> <!--IssueSummary end--> We should enable easier control over artifact expiration for tagged artifacts. We can do this in a couple of ways, some suggestions have been: * At the server level, adding an extra option to exempt tagged artifacts from expiration entirely or offering a separate duration option. * At the project level, through an easier method in `gitlab-ci.yml` without requiring an independent job. * At the project level, in a project level setting. ## Server level setting At the server level seems pretty blunt, and it's unclear how that setting would interplay with a duration specified in `gitlab-ci.yml`. Would the server or CI setting take precedence? If the CI setting should take precedence, which it should, we should make it easier to solve this problem without needing a specific job for tagged jobs since it would be needed anyway. ## Improvement to `gitlab-ci.yml` Which brings us to a project level setting in `gitlab-ci.yml`. As noted this can be done today by creating a specific job for tags, but this means that commands for the pipeline would need to be maintained in another specific job. This seems less than ideal. ## Project level setting Another option is to create a setting which would override anything in `gitlab-ci.yml`, but leave this at the project setting so it could be independently managed outside of a complete server global setting. My personal preference is come up with a method of specifying this more cleanly in `gitlab-ci.yml`. Having overrides for specific cases outside of that file is confusing, and prone to not being very discoverable.
issue