I think this suggestion is also relevant for gitlab-ce#17081 (junit test reporting), where the reporting at the moment disappear when the artifacts are deleted (if I understand correctly).
Until this issue is resolved, is the documentation here incorrect? It clearly states that it should be possible to keep artifacts forever by setting expire_in: 0
This setting is set per job and can be overridden in .gitlab-ci.yml. To disable the expiration, set it to 0. The default unit is in seconds.
@fhriley, at least on 12.0.3-ee, leaving expire_in blank simply defaults to global settings (4 weeks for our server).
It occurs to me now that perhaps the documentation is not incorrect, but just misleading. I think it means that setting the global settings to expire_in: 0 will disable expiration for all projects, to be overridden on a per-job basis via the yaml config.
We have many projects running out of our server and it doesn't make sense for us to change the global default and force the majority of people to set expiration dates where they currently rely on defaults. As a workaround for projects which want to disable expiration, we have constructed a really hacky workaround which fires off a request to the API to keep artifacts which we want to preserve for release.
Closing this issue given job artifacts can be kept forever by setting artifacts:expire_in to 0. Per documentation:
The default expiration time of the job artifacts can be set in the Admin Area of your GitLab instance. The syntax of duration is described in artifacts:expire_in and the default value is 30 days....
This setting is set per job and can be overridden in .gitlab-ci.yml. To disable the expiration, set it to 0. The default unit is in seconds.