Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-18790

Ivy job type should support fingerprinting of consumed dependencies

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • ivy-plugin
    • None

      While the Ivy job type identifies upstream and downstream Job relationships, it does not currently provide full support for Jenkins's way to identify Build relationships... namely fingerprinting.

      The Ivy job type allows one to fingerprint things that have been created by the build, but if the dependencies are not copied into the build workspace there is no way for the user to configure the standard Jenkins fingerprinter to capture the fingerprints that were resolved by the project but used while remaining in the Ivy cache.

      This means that other plugins that rely on fingerprint information to establish a chain of cause and effect between specific builds of specific projects are unable to reliably do so.

      To correctly support this with the Ivy job type it would need to do the following:

      Capture the fingerprints of all dependencies resolved by the build (those fingerprints indicate upstream dependencies)

          [JENKINS-18790] Ivy job type should support fingerprinting of consumed dependencies

          This was something I had planned (and very much wanted) to do, but I didn't get time, and haven't had time since then to even support this plugin really.

          The solution is pretty straightforward, but would take a bit of work. The basic approach is to attach an IvyListener to the build process which can then filter through all of the different IvyEvent objects fired during the build process, recording the resolve events to fingerprint all dependencies and recording the publish events for automatic archiving and fingerprinting of artifacts.

          The Jenkins Artifactory plugin already has a lot of this code for its integration with the Jenkins Ivy plugin, so their general approach could likely just be copied.

          I really am not going to have any time at all to work on this though, so I can only hope that some other dev will eventually come along and implement it.

          Timothy Bingaman added a comment - This was something I had planned (and very much wanted) to do, but I didn't get time, and haven't had time since then to even support this plugin really. The solution is pretty straightforward, but would take a bit of work. The basic approach is to attach an IvyListener to the build process which can then filter through all of the different IvyEvent objects fired during the build process, recording the resolve events to fingerprint all dependencies and recording the publish events for automatic archiving and fingerprinting of artifacts. The Jenkins Artifactory plugin already has a lot of this code for its integration with the Jenkins Ivy plugin, so their general approach could likely just be copied. I really am not going to have any time at all to work on this though, so I can only hope that some other dev will eventually come along and implement it.

            tbingaman Timothy Bingaman
            stephenconnolly Stephen Connolly
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: