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

Groovy Parser cannot access console log

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • warnings-ng-plugin
    • None
    • Jenkins ver. 2.138.3 (Docker Hub)
      Wanings NG 1.0.0-beta5

      (discussion is split from JENKINS-54759)

      Issue

      console parsers currently run on the master and for security reasons, this excludes the customizable Groovy Parser.
      for an user this is surprising and adding a custom warning parser will need changes in the buildscript to dump output to a log file, ideally adding a parser would not otherwise affect existing jobs .

      1. not piping would be the most clear, and similar to the scripts you would run on a local build
      2. piping it just to a file will remove all visible status during execution
      3. naively splitting it (eg. | tee file.log) will mean the error state of the script doing the build will vanish. see here
      4. additionally storing and restoring the errors state of the script adds boilerplate code

      just to reiterate how invasive this change is, here is my current (POSIX Shell) workaround with variant 4):

      before:

      sh buildscript.sh ARGS...
      

      after:

      pipe_retval() {
        local LOGFILE=$1; shift
        (((("$@" 2>&1; echo $? >&3) | tee "$LOGFILE" >&4) 3>&1) | (read xs; exit $xs)) 4>&1
      }
      
      pipe_retval build.log sh buildscript.sh ARGS...
      

            drulli Ulli Hafner
            nolange79 Norbert Lange
            Votes:
            7 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: