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

Strings from the "echo" step are suppressed in BlueOcean UI if they contain values found in an environment variable

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: blueocean-plugin
    • Labels:
    • Environment:
      Jenkins: 2.138.1
      BlueOcean plugin: 1.8.2
      A clean install on Windows 7 with just a standard set of plugins
      Reproed with Chrome on Windows and Firefox on a Linux desktop
    • Similar Issues:

      Description

      When a string is displayed in the BlueOcean UI from an "echo" step, the string "Print Message" is displayed IF the string being echoed contains a substring that matches the contents of any environment variable. 

      Repro steps:

      Create a pipeline with this code:

      pipeline {
          agent any
          stages {
              stage('test') {
                  environment {
                      THING = 'foobarbuzz'
                  }
                  steps {
                      echo "blah"
                      echo "foobarbuzz"
                      echo "foobarZZZbuzz"
                      echo "This is a $THING here"
                  }
              }
          }
      }

      Run the pipeline via Blue Ocean

      Observe that there are four step labels displayed in the Blue Ocean UI. (see attached screenshot)  The first and third steps display the strings from "echo" as expected.  But, the second and fourth steps display only "Print Message" and don't show the expected string.  The user needs to click the step to expand it to see the string.  I would expect that all strings from all echo statements should show up in the main Blue Ocean UI and would not require some to be manually expended.

       

        Attachments

          Activity

          Hide
          marcellodesales Marcello de Sales added a comment -

          Ian Katz Hilario Fernandes I will have to take it back after looking at your examples... So far we have observed:

          • Values with references to params
          • Values with references to env

          This is definitely an annoying situation when we want to show information to users

           

          Show
          marcellodesales Marcello de Sales added a comment - Ian Katz Hilario Fernandes I will have to take it back after looking at your examples... So far we have observed: Values with references to params Values with references to env This is definitely an annoying situation when we want to show information to users  
          Hide
          larry_west Larry West added a comment - - edited

          My $0.02 – this is such an annoying bug.  And seemingly trivial to fix.

          We had been telling our users to look in the Blue Ocean output to see what happened to their build, because the graphic view of pipelines has the potential to make it much clearer.

          But then they see 10 or 20 or 50 "Print message" lines and have to click most of them to see the important messages.

          It's not clear there is any purpose behind hiding the text.

          And we often have to tell them how to find their way to the "pipeline.log" to get the full story.

          So it's easier to tell people to just go to the old style console log  

          Show
          larry_west Larry West added a comment - - edited My $0.02 – this is such an annoying bug.  And seemingly trivial to fix. We had been telling our users to look in the Blue Ocean output to see what happened to their build, because the graphic view of pipelines has the potential to make it much clearer. But then they see 10 or 20 or 50 "Print message" lines and have to click most of them to see the important messages. It's not clear there is any purpose behind hiding the text. And we often have to tell them how to find their way to the "pipeline.log" to get the full story. So it's easier to tell people to just go to the old style console log  
          Hide
          rkomarov Roman Komarov added a comment - - edited

          Larry West, I've found an ugly workaround to this - avoid using env and params in echo output as much as possible and then make a second echo showing the actual output. This still leaves lots of "Print message" in BlueOcean output, but at least people can see the actual action within the step.

          But you are right, this is very annoying and users become reluctant to use BO because of this. 

          Show
          rkomarov Roman Komarov added a comment - - edited Larry West , I've found an ugly workaround to this - avoid using env and params in echo output as much as possible and then make a second echo showing the actual output. This still leaves lots of "Print message" in BlueOcean output, but at least people can see the actual action within the step. But you are right, this is very annoying and users become reluctant to use BO because of this. 
          Hide
          mcw Matt C. Wilson added a comment -

          A workaround that we're having success with is removing informational echo calls and instead using the `label` property on `sh`.  This was recently introduced in the Pipeline: Nodes and Processes plugin - required us to upgrade.  

          So 

          echo Doing the thing...

          sh ./the_thing.sh

          becomes

          sh(script: "./the_thing.sh", label: "Doing the thing...")

          and has the nice side effect of reducing the number of rows overall in Blue Ocean.

          https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script
          https://plugins.jenkins.io/workflow-durable-task-step

          Show
          mcw Matt C. Wilson added a comment - A workaround that we're having success with is removing informational echo calls and instead using the ` label ` property on ` sh `.  This was recently introduced in the Pipeline: Nodes and Processes plugin - required us to upgrade.   So  echo Doing the thing... sh ./the_thing.sh becomes sh(script: "./the_thing.sh", label: "Doing the thing...") and has the nice side effect of reducing the number of rows overall in Blue Ocean. https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script https://plugins.jenkins.io/workflow-durable-task-step
          Hide
          marcellodesales Marcello de Sales added a comment -

          Matt C. Wilson Can you specify the versions you tested those? I guess we can just write a script instruction to not echo anything and place the actual String in the label... have you tried that?

          Show
          marcellodesales Marcello de Sales added a comment - Matt C. Wilson Can you specify the versions you tested those? I guess we can just write a script instruction to not echo anything and place the actual String in the label... have you tried that?

            People

            • Assignee:
              Unassigned
              Reporter:
              sirgnip S Nelson
            • Votes:
              11 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

              • Created:
                Updated: