gitlab-ci: Conditionally store trace reference images in artifacts

This allows us to have the reference images readily available in case we require them to diff against produced images in failed runs.

In order to reduce the storage requirements, we store images only for pushes to master, and only if either the traces.yml file has been updated, or the push is the first one in the current week. These conditions ensure that we have an up-to-date version of the images in recent (thus accessible) artifacts.

This update only affects image storage for successful runs. In case of failure the images continue to be stored as before.

The reference images are going to be used by the dashboard to produce image diffs. Subsequently, the tracie logs can include links to the dashboard diffs, to make it easy for people to figure out what's wrong when a trace run fails due to image mismatch.

See #2683 (closed) for a discussion of the storage costs of this approach, and some alternatives.

Edited by Jordan Justen

Merge request reports