Add a diff view of CI artifacts
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Problem to solve
Make it possible to show differences between versions of CI artifacts as well as differences between the source
Intended users
Everyone
Further details
In an earlier issue #20343 (closed), I proposed that we should be able to review visual differences of other files besides images. In a later comment I noted a couple of other steps that could be taken to make that happen.
Proposal
CI artifact browsing, commit view, and/or merge request view should include the ability to show a diff between this artifact and a previous version of that artifact, in the same way that you can do in the source code or source images for commit & merge request views.
This would allow CI jobs to render visual artifacts from source files (such as latex to PDFs, or electronic design files to PDFs or PNGs) and maintain the source repository as a single source of truth without having to clutter it up with binary artifacts that can often get out of sync if they aren't committed at the same time as the corresponding change in source.
Permissions and Security
Anyone with view access to repository and CI artifacts should be able to view.
Documentation
Testing
Will need to copy the tests done for diff views.
What does success look like, and how can we measure that?
Success: a user can view the differences between outputs of CI jobs with the same diff viewers as the source blob viewer.
Example:
Commit 1: add a schematic.sch along with a corresponding CI job definition in .gitlab-ci.yml that produces an image view of the schematic in the artifacts: schematic.png
Commit 2: change something in schematic.sch
Either:
- In the sidebar for the CI job, there is a "Changes" button next to the "Browse" button, or
- In the browser for the artifacts, any file that exists in previous commits has a "Changes" button to view a history of that file in a similar manner as the history view of a source blob, or
- In the commit / merge request view, the changes include CI job output changes in addition to source file changes
Viewing the changes for schematic.png will show an image diff viewer similarly to if schematic.png was manually generated and committed to the repo in those commits.
What is the type of buyer?
All of them
Links / references
Suggested /label feature devopscreate devopsverify image diff ~artifacts