0
0
Jenkinsdevops~10 mins

Artifact fingerprinting in Jenkins - Step-by-Step Execution

Choose your learning style9 modes available
Process Flow - Artifact fingerprinting
Build Artifact Created
Generate Fingerprint (hash)
Store Fingerprint in Jenkins
Use Fingerprint to Track Artifact
Identify Artifact Usage Across Jobs
This flow shows how Jenkins creates a unique fingerprint for each artifact, stores it, and tracks its usage across builds.
Execution Sample
Jenkins
fingerprint('myapp.jar')
archiveArtifacts('myapp.jar')
This Jenkins pipeline snippet fingerprints the artifact 'myapp.jar' and archives it for tracking.
Process Table
StepActionInputOutputSystem State Change
1Build completesmyapp.jar createdArtifact file readyArtifact file 'myapp.jar' exists in workspace
2Generate fingerprintmyapp.jarMD5 hash generatedFingerprint stored in Jenkins fingerprint database
3Archive artifactmyapp.jarArtifact archivedArtifact archived and linked with fingerprint
4Track usageFingerprintUsage recordedFingerprint linked to current build and downstream jobs
5EndN/AN/AFingerprint tracking ready for queries
💡 Fingerprinting and archiving complete; artifact usage can now be tracked across builds.
Status Tracker
VariableStartAfter Step 2After Step 3Final
artifact_filenonemyapp.jarmyapp.jarmyapp.jar archived
fingerprint_hashnonemd5:abc123...md5:abc123...md5:abc123... linked
fingerprint_dbemptycontains md5:abc123...contains md5:abc123...contains md5:abc123... with usage
Key Moments - 3 Insights
Why do we generate a fingerprint for the artifact?
The fingerprint uniquely identifies the artifact by its content, allowing Jenkins to track it across different builds and jobs, as shown in step 2 of the execution table.
Does fingerprinting change the artifact file itself?
No, fingerprinting only reads the artifact to generate a hash; the artifact file remains unchanged, as seen in the variable 'artifact_file' staying the same after step 2.
How does Jenkins use the fingerprint after archiving?
Jenkins links the fingerprint to the archived artifact and records its usage in builds and downstream jobs, enabling traceability, as shown in steps 3 and 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output of step 2?
AMD5 hash generated
BArtifact archived
CBuild completes
DUsage recorded
💡 Hint
Check the 'Output' column for step 2 in the execution table.
At which step does Jenkins link the fingerprint to the current build?
AStep 1
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'System State Change' column for step 4.
If the artifact file changes, what happens to the fingerprint?
AFingerprint is deleted
BFingerprint stays the same
CFingerprint is regenerated with a new hash
DFingerprint is ignored
💡 Hint
Recall that fingerprint is a hash of the artifact content, so changes cause a new hash.
Concept Snapshot
Artifact fingerprinting in Jenkins:
- Generates a unique hash (fingerprint) for each artifact
- Fingerprint tracks artifact usage across builds
- Does not modify the artifact file
- Used with archiveArtifacts step
- Enables traceability and impact analysis
Full Transcript
Artifact fingerprinting in Jenkins means creating a unique hash for each build artifact. When a build finishes, Jenkins generates a fingerprint by hashing the artifact file content. This fingerprint is stored in Jenkins and linked to the artifact when archived. Jenkins then tracks where this artifact is used in other builds or jobs. This helps teams know which builds used or produced a specific artifact. The fingerprint does not change the artifact file itself. It is a way to identify and trace artifacts easily across the pipeline.