-
Bug
-
Resolution: Fixed
-
Minor
-
Win 2008RC2, Jenkins 1.504, Copy Artifact v1.26
Automatic fingerprinting by Copy Artifact plugin leads to doubled hudson.tasks.Fingerprinter_-FingerprintAction entry in build.xml. One is original fingerprinting by the job (second in the provided file snip) - with all the desired files fingerprinted - and the other comes from Copy Artifact invocation (first in the file provided) that fingerprinted just the artifact copied in the operation.
Observed wrong behavior:
Outcome is that two 'See fingerprints' are shown on a build page (both with the same correct url) and the 'Recorded Fingerprints' page shows recorded fingerprints from the first tag only (in build.xml file order).
Desired behavior:
All fingerprints for the build are shown on the 'Recorded Fingerprints' page and there is only one 'See fingerprints' link on the build page. From the technical POV (completely not sure as I did no Jenkins dev before) Copy Artifacts' fingerprinting invocation should merge its results into the existing FingerprintAction.
build.xml
<hudson.tasks.Fingerprinter_-FingerprintAction> <build class="build" reference="../../.."/> <record> <entry> <string>setup-13.0.1-SNAPSHOT-main.zip</string> <string>b631114a7f7d32eeb2a6f0957d768593</string> </entry> </record> </hudson.tasks.Fingerprinter_-FingerprintAction> <hudson.tasks.Fingerprinter_-FingerprintAction> <build class="build" reference="../../.."/> <record> <entry> <string>build\target\dependency\[...snip...]</string> <string>8fca7e0f1dddc22e7c04f32b90392a90</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>cdbe8262c397ac0c247e4b11cd513807</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>174868b4b6f47540731aaeff4d5152bb</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>7ecd1d6cb0b2f167a5fdb58cecd0807b</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>6bbda9e72234c4423b5fc73477e7767b</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>269e6262984ce79d18af54009485d9e8</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>b01e557b6568b89501a9f50e68e89744</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>646180a22ecbe46592b073ec6371eeac</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>7c564e97d354e6307ddd6d88e332e874</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>5f3848e6c268a402ea89c37fc5100118</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>d65852828ba49e738db4a2c433f9c902</string> </entry> <entry> <string>build\artifacts\[...snip...]</string> <string>7282d44469efae422994988876a0a4f6</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>9e691b924e586e4bbef5afd974b91355</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>d443b4b3e4dd6c92048d48d4afd26fcf</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>f3fe703d7e3323d56b366cd4f2aa2546</string> </entry> <entry> <string>build\target\dependency\[...snip...]</string> <string>6577c771a412742f053530efcc65fe12</string> </entry> </record> </hudson.tasks.Fingerprinter_-FingerprintAction>
- is blocking
-
JENKINS-11333 Make fingerprinting configurable in Maven projects
-
- Resolved
-
- is related to
-
JENKINS-12134 Copying an artifact should (optionally) fingerprint all artifacts
-
- Closed
-
Ok, this seems more tricky. The problem occurs when CopyArtifact is done in a job invoked in a non-blocking manner from the main job:
What I see in code is that FingerprintingCopyMethod:116 checks if there is FingerprintAction already for the Build or not and handles it fine:
On the other hand if CopyArtifact is called earlier for the Build, Fingerprinter task does not check if the FingerprintAction was present or not and adds the second instance (see Fingerprinter.java:136).
Is it correct approach just to mimic the CopyArtifact behavior and check for previously added FingerprintAction?