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

Build History by Node doesn't work with Pipeline

    XMLWordPrintable

Details

    Description

      Browse to <jenkinsServer>/computer/<nodeName>/builds to see build history. For pipeline this page seems disabled. This is understandable because a single pipeline might span multiple nodes so showing a simple pass/fail list of pipeline jobs for a node might not make sense. However this has made it hard to tell at a glance when a certain node is failing more often than other nodes.

      I would like to see the build history page for nodes display the pipeline job name and build number and then maybe the stage name and step number or something that is definitely unique to that node. That way we could quickly browse history at the node level to determine if a particular node has problems.

      Attachments

        Issue Links

          Activity

            rainwaj Hello. Since this hasn't been resolved, do you mind sharing the basic concept of how you got the job done? I'd really, really could use some help on this... jglick are you aware of any workarounds?

            ddragomi Dan Dragomirescu added a comment - rainwaj Hello. Since this hasn't been resolved, do you mind sharing the basic concept of how you got the job done? I'd really, really could use some help on this... jglick are you aware of any workarounds?
            jglick Jesse Glick added a comment -

            Well, it would be a few lines of Groovy scripting to calculate this…but as mentioned above, if you have a lot of historical builds, the performance will be abysmal (especially on HDDs) since an unbounded number of little XML files would need to be loaded from disk and deserialized into memory, then discarded shortly afterward once the system gets into a low memory condition. That is true of freestyle builds and would be worse still for Pipeline builds due to the more complex metadata. A supportable solution would need something like a database that gets updated when a build uses a node—not a difficult programming project at all, but logistically a problem since Jenkins currently lacks any kind of standardized database, so you would need to either initiate that effort, or do a one-off hack with some sort of text file stored in a node’s configuration directory.

            jglick Jesse Glick added a comment - Well, it would be a few lines of Groovy scripting to calculate this…but as mentioned above, if you have a lot of historical builds, the performance will be abysmal (especially on HDDs) since an unbounded number of little XML files would need to be loaded from disk and deserialized into memory, then discarded shortly afterward once the system gets into a low memory condition. That is true of freestyle builds and would be worse still for Pipeline builds due to the more complex metadata. A supportable solution would need something like a database that gets updated when a build uses a node—not a difficult programming project at all, but logistically a problem since Jenkins currently lacks any kind of standardized database, so you would need to either initiate that effort, or do a one-off hack with some sort of text file stored in a node’s configuration directory.
            bruntmyer29 Nick added a comment - - edited

            Is it possible to trigger a clone freestyle job after the pipeline job completes and pass or fail it based on the pipeline job results? The result wouldn't have accurate info for time or etc but it would quickly show pass / fail results per node and the console output of the freestyle job would link to the pipeline output. I know how to trigger the freestyle clone but I'm not sure if its possible to make it pass or fail based on the pipeline job results.

            Update, it is possible to do this with the Node and Label parameter plugin. Needing the duplicate Freestyle job is a bit of a bummer though

            bruntmyer29 Nick added a comment - - edited Is it possible to trigger a clone freestyle job after the pipeline job completes and pass or fail it based on the pipeline job results? The result wouldn't have accurate info for time or etc but it would quickly show pass / fail results per node and the console output of the freestyle job would link to the pipeline output. I know how to trigger the freestyle clone but I'm not sure if its possible to make it pass or fail based on the pipeline job results. Update, it is possible to do this with the  Node and Label parameter plugin . Needing the duplicate Freestyle job is a bit of a bummer though

            Is there any chance of reopening this ticket and reconsidering the outcome? Not implementing it leaves setups primarily focused on using pipelines with no usable history of builds and gives no easy way of analyzing what was happening on connected nodes at certain point of time.

            machnic Michał Machnicki added a comment - Is there any chance of reopening this ticket and reconsidering the outcome? Not implementing it leaves setups primarily focused on using pipelines with no usable history of builds and gives no easy way of analyzing what was happening on connected nodes at certain point of time.
            canuck1987 Tim Brown added a comment -

            > Is there any chance of reopening this ticket and reconsidering the outcome?
            +1

            canuck1987 Tim Brown added a comment - > Is there any chance of reopening this ticket and reconsidering the outcome? +1

            People

              Unassigned Unassigned
              rainwaj Justin Rainwater
              Votes:
              2 Vote for this issue
              Watchers:
              35 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: