-
Notifications
You must be signed in to change notification settings - Fork 488
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes #430: Validate an artifact using "hash" rather than "fileName" #851
base: master
Are you sure you want to change the base?
Fixes #430: Validate an artifact using "hash" rather than "fileName" #851
Conversation
…fileName" Jenkins only stores one version of an artifact by its hash and by the original filename. Subsequent stores of an artifact with an identical hash but different filename will point to the original artifact. If a duplicate artifact (identical hash) has a different filename than the original filename then that new filename will be stored as a name in the build artifacts but will not change the fileName of the original artifact. This makes it problematic to compare against the original fileName when validating a build artifact that has been saved. Since the md5sum hash is computed for the local, saved artifact it can be compared against the Jenkins artifact ID (viz hash) for validation. This avoids the problem of identical artifacts having additional filenames. Using the hash is also a better way of validating data integrity rather than using the fileName even when the filename matches.
4619c20
to
5163a39
Compare
This updates an invocation of log.info() to use %-format style and quells a Codacy complaint.
for more information, see https://pre-commit.ci
I see lots of failures with the checks but I can't find any logs that indicate what failed. Are the checks broken? |
What's up with the |
This is a helpful addition - trying to fix the CI now with #874 Once that is done - you can rebase the branch and should be able to see the checks pass |
@plastikos thanks for the pr, would you be able to add a test demonstrating this usage |
@clintonsteiner, my apologies - I haven't been paying attention. I'll see what I can do to augment the artifact testing. |
Jenkins only stores one version of an artifact by its hash and by the original filename. Subsequent stores of an artifact with an identical hash but different filename will point to the original artifact. If a duplicate artifact (identical hash) has a different filename than the original filename then that new filename will be stored as a name in the build artifacts but will not change the fileName of the original artifact. This makes it problematic to compare against the original fileName when validating a build artifact that has been saved.
Since the md5sum hash is computed for the local, saved artifact it can be compared against the Jenkins artifact ID (viz hash) for validation. This avoids the problem of identical artifacts having additional filenames. Using the hash is also a better way of validating data integrity rather than using the fileName even when the filename matches.