[JIRA] [core] (JENKINS-23786) Permit "Execute shell" jobs to return 2 for "unstable"

8 views
Skip to first unread message

annemoroney@alum.mit.edu (JIRA)

unread,
Oct 7, 2015, 1:21:02 PM10/7/15
to jenkinsc...@googlegroups.com
AnneTheAgile commented on New Feature JENKINS-23786
 
Re: Permit "Execute shell" jobs to return 2 for "unstable"

Craig Ringer, did you ever get feedback on your patch? I don't know how patches normally get added to Jenkins?
I would love this fix too.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.4.2#64017-sha1:e244265)
Atlassian logo

annemoroney@alum.mit.edu (JIRA)

unread,
Oct 7, 2015, 1:22:02 PM10/7/15
to jenkinsc...@googlegroups.com
AnneTheAgile edited a comment on New Feature JENKINS-23786
[~ringerc], did you ever get feedback on your patch? I don't know how patches normally get added to Jenkins?

I would love this fix too.


p.s. Note, the linked "Duplicate" ticket was closed in favor of this one.

dbeck@cloudbees.com (JIRA)

unread,
Oct 14, 2015, 12:52:02 PM10/14/15
to jenkinsc...@googlegroups.com

scm_issue_link@java.net (JIRA)

unread,
Oct 11, 2016, 8:22:15 AM10/11/16
to jenkinsc...@googlegroups.com

Code changed in jenkins
User: Craig Ringer
Path:
core/src/main/java/hudson/tasks/Shell.java
core/src/main/resources/hudson/tasks/Shell/config.groovy
test/src/test/java/hudson/tasks/ShellTest.java
http://jenkins-ci.org/commit/jenkins/e773eb44621ded75e66e4d4b3aa6f7a48bebcb49
Log:
JENKINS-23786: Allow Shell jobs to set a return code for unstable

Currently a shell job has to make a HTTP call back to Jenkins to set
its build result as unstable. This is slow, requires the slave to
have access to the master's HTTP interface, and is fiddly. The
alternative, the TextFinder plugin, is no better.

Instead, allow a job to set the build result to unstable with a
return value.

Adds the Advanced parameter "unstableReturn" which, if non-zero,
is the code the script must return to set the build as unstable.

This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

scm_issue_link@java.net (JIRA)

unread,
Oct 11, 2016, 8:22:19 AM10/11/16
to jenkinsc...@googlegroups.com

Code changed in jenkins
User: Oleg Nenashev
Path:
core/src/main/java/hudson/tasks/BatchFile.java
core/src/main/java/hudson/tasks/CommandInterpreter.java
core/src/main/java/hudson/tasks/Shell.java
core/src/main/resources/hudson/tasks/BatchFile/config.jelly
core/src/main/resources/hudson/tasks/BatchFile/help-unstableReturn.html
core/src/main/resources/hudson/tasks/Messages.properties
core/src/main/resources/hudson/tasks/Shell/config.groovy
core/src/main/resources/hudson/tasks/Shell/config.properties
core/src/main/resources/hudson/tasks/Shell/help-unstableReturn.html
test/src/test/java/hudson/tasks/BatchFileTest.java
test/src/test/java/hudson/tasks/ShellTest.java
http://jenkins-ci.org/commit/jenkins/720b75f096e573b102323b529ec952e2106d4a57
Log:
Merge pull request #2563 from stochmial/shell-setunstable-rebased

JENKINS-23786 Permit the Shell plugin to set a build result as unstable via a return code

Compare: https://github.com/jenkinsci/jenkins/compare/74c534207ca0...720b75f096e5

scm_issue_link@java.net (JIRA)

unread,
Oct 11, 2016, 8:22:19 AM10/11/16
to jenkinsc...@googlegroups.com

Code changed in jenkins
User: Craig Ringer
Path:
core/src/main/java/hudson/tasks/BatchFile.java
core/src/main/resources/hudson/tasks/BatchFile/config.jelly
core/src/main/resources/hudson/tasks/BatchFile/config.properties
test/src/test/java/hudson/tasks/BatchFileTest.java
http://jenkins-ci.org/commit/jenkins/4b067fdf15fc1568ce27a921e41047201047507b
Log:
JENKINS-23786: Allow batch files to set an exit code for unstable builds

dbeck@cloudbees.com (JIRA)

unread,
Oct 15, 2016, 4:20:03 PM10/15/16
to jenkinsc...@googlegroups.com
Daniel Beck resolved as Fixed
 

Fixed towards 2.26

Jenkins / New Feature JENKINS-23786
Change By: Daniel Beck
Status: Open Resolved
Resolution: Fixed

o.v.nenashev@gmail.com (JIRA)

unread,
Oct 15, 2016, 4:41:02 PM10/15/16
to jenkinsc...@googlegroups.com

Martin.Jost@nokia.com (JIRA)

unread,
Oct 25, 2016, 5:11:02 AM10/25/16
to jenkinsc...@googlegroups.com

So what is now the behaviour ?
From what I understand from https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/hudson/tasks/Shell/help-unstableReturn.html:

  • 0: pass (green)
    "The value 0 is ignored and does not make the build unstable to keep the default behaviour consistent."
  • 1: red (fail) ? Or can this also be used for "unstable" ?
  • a configurable value (!= 0) meaning "unstable"
  • What about other exit values ? Will they make the job red ?

Is it possible to switch the behaviour off (to old behaviour (0:"pass"; all else "fail") to ease transition to the version containing this ?

dbeck@cloudbees.com (JIRA)

unread,
Oct 25, 2016, 5:46:01 AM10/25/16
to jenkinsc...@googlegroups.com

Is it possible to switch the behaviour off (to old behaviour (0:"pass"; all else "fail") to ease transition to the version containing this ?

Quoting the help text, emphasis mine:

If set, the shell exit code that will be interpreted as an unstable build result.

gentoo.integer@gmail.com (JIRA)

unread,
Feb 8, 2017, 3:43:02 PM2/8/17
to jenkinsc...@googlegroups.com

It was pretty easy to change status with touch file and make conditional status change on file.

If jenkins interprets exit code 2 specially then it crazy regression, already existing jobs may use unstable for deployment, while failed shell script shouldn't provide the way to trigger build.
http://tldp.org/LDP/abs/html/exitcodes.html#EXITCODESREF

gentoo.integer@gmail.com (JIRA)

unread,
Feb 8, 2017, 3:49:02 PM2/8/17
to jenkinsc...@googlegroups.com

Huh, found that it configurable, hope it disabled by default.

alexej.ismailov@gmail.com (JIRA)

unread,
Mar 20, 2019, 6:30:05 AM3/20/19
to jenkinsc...@googlegroups.com

I'm sorry if this is a stupid question, but how do I use this? How to configure jenkins to interpret exit code 2 as unstable?
If I do this inside a step: 
sh returnStatus:true, script: 'exit 2'

I get same behaviour as if I would exit with 1:

11:27:13 Catching error for later recovery: hudson.AbortException: script returned exit code 2...[Pipeline] End of PipelineERROR: script returned exit code 2
Finished: FAILURE

This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

alexej.ismailov@gmail.com (JIRA)

unread,
Mar 20, 2019, 6:32:03 AM3/20/19
to jenkinsc...@googlegroups.com
Alexej Ismailov edited a comment on New Feature JENKINS-23786
I'm sorry if this is a stupid question, but how do I use this? How to configure jenkins to interpret exit code 2 as unstable?
If I do this inside a step: 
sh returnStatus:true, script: 'exit 2'

I get same behaviour as if I would exit with 1:


* {noformat}
11:27:13 *   Catching error for later recovery: hudson.AbortException: script returned exit code 2
...
[Pipeline] End of PipelineERROR: script returned exit code 2
Finished: FAILURE

{noformat}

alexej.ismailov@gmail.com (JIRA)

unread,
Mar 20, 2019, 6:33:06 AM3/20/19
to jenkinsc...@googlegroups.com
Alexej Ismailov edited a comment on New Feature JENKINS-23786
I'm sorry if this is a stupid question, but how do I use this? How to configure jenkins to interpret exit code 2 as unstable?
If I do this inside a step: 

sh returnStatus:true, script: ' """ exit 2 ' """

I get same behaviour as if I would exit with 1:


{noformat}
11:27:13 Catching error for later recovery: hudson.AbortException: script returned exit code 2

...
[Pipeline] End of PipelineERROR: script returned exit code 2
Finished: FAILURE
{noformat}

Aaron.Marasco@BIA-Boeing.com (JIRA)

unread,
Mar 20, 2019, 8:42:02 AM3/20/19
to jenkinsc...@googlegroups.com

Alexej Ismailov all of the above examples, being from 2016, were probably using the "classic" interface which has a field in the UI. In pipeline code, you want to use the "returnStatus" flag when calling sh - see https://jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script - unfortunately you cannot use "returnStdout" at the same time; see JENKINS-44930.

rvernica@gmail.com (JIRA)

unread,
Jul 16, 2019, 12:26:06 PM7/16/19
to jenkinsc...@googlegroups.com
Rares Vernica updated an issue
 
Change By: Rares Vernica
Attachment: exit-unstable.png

rvernica@gmail.com (JIRA)

unread,
Jul 16, 2019, 12:26:06 PM7/16/19
to jenkinsc...@googlegroups.com
Rares Vernica commented on New Feature JENKINS-23786
 
Re: Permit "Execute shell" jobs to return 2 for "unstable"

See this screenshot on how you can set it. Notice the Exit code to set build unstable field.

Reply all
Reply to author
Forward
0 new messages