Build always ends with FAILURE after setting currentBuild.result = 'STABLE' / 'SUCCESS'

5,367 views
Skip to first unread message

Tomas Pekarovic

unread,
Mar 28, 2017, 9:18:56 AM3/28/17
to Jenkins Users
HI,

 I have this post-buidl action:

    post {
        always {
            script {
                if (currentBuild.result == 'UNSTABLE'){
                    currentBuild.result = 'STABLE'
                }
                currentBuild.result = 'SUCCESS'
            }
        }
    }


All i need is just to set build to SUCCESS even if it is UNSTABLE.

JUNIT step produces currentBuild.result = UNSTABLE  < this is ok..

at the end I need to change status to succes. I tried all possible combinations.
If I do:

    post {
        always {
            script {
                if (currentBuild.result == 'UNSTABLE'){
                    currentBuild.result = 'SUCCESS'
                }
            }
        }
    }

It does nothing and build is yellow....

If I do:

    post {
        always {
            script {
                if (currentBuild.result == 'UNSTABLE'){
                    currentBuild.result = 'STABLE'
                }
            }
        }
    }

All steps change to  green/blue  (that is correct) but overal build is  FAILURE


I'm out of ideas and it seems to me as a bug.

If I do nothing in postbuild full build is marked as  'UNSTABLE'

thanks for any ideas

Richard Ginga

unread,
Mar 28, 2017, 11:01:00 AM3/28/17
to jenkins...@googlegroups.com
Tomas, I don't think you can set a job's resultant status Better than it currently is. You can set it down. e.g. unstable->failure

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/f2eac395-838e-4421-b9b8-ec9a7308cc31%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Dick Ginga
Build Engineer

Daniel Beck

unread,
Mar 28, 2017, 12:09:30 PM3/28/17
to jenkins...@googlegroups.com

> On 28.03.2017, at 15:18, Tomas Pekarovic <ala...@gmail.com> wrote:
>
> it seems to me as a bug.

Works as intended and documented:
http://javadoc.jenkins.io/hudson/model/Run.html#setResult%28hudson.model.Result%29

Tomas Pekarovic

unread,
Mar 28, 2017, 12:28:37 PM3/28/17
to jenkins...@googlegroups.com
hmm.. great....

thanks


--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/r35UO_Ji4c8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/62100418-4F21-4EFB-B82F-66715256AE80%40beckweb.net.

jer...@bodycad.com

unread,
Mar 28, 2017, 12:52:06 PM3/28/17
to Jenkins Users
Take care the currentBuild.result will be unset if successful up to that point. There's no 'STABLE'

'SUCCESS'
'UNSTABLE'
'FAILURE'
'ABORTED'
'NOT_BUILT'

Tomas Pekarovic

unread,
Mar 28, 2017, 1:06:28 PM3/28/17
to jenkins...@googlegroups.com
Question is why when i set 'success' nothing happen. If I set 'stab'e, it will recolor all the pipeline steps to GREEN  and after that result of build is 'FAILURE' 

--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/r35UO_Ji4c8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-users+unsubscribe@googlegroups.com.

Jérôme Godbout

unread,
Mar 28, 2017, 1:24:42 PM3/28/17
to jenkins...@googlegroups.com
Setting stable is not an available enum value, so you fall back to FAILURE I guess. If you set success, make sure you make it case sensitive

currentBuild.result = 'SUCCESS'


bodycad
Jerome Godbout
Software Developer
2035 rue du Haut-Bord, Québec, QC, Canada. G1N 4R7
T:  +1 418 527-1388
E: jer...@bodycad.com
www.bodycad.com

The contents of this email message and any attachments are intended solely for the addressee(s) and may contain confidential and/or privileged information and may be legally protected from disclosure. If you are not the intended recipient of this message or their agent, or if this message has been addressed to you in error, please immediately alert the sender by reply email and then delete this message and any attachments. If you are not the intended recipient, you are hereby notified that any use, dissemination, copying, or storage of this message or its attachments is strictly prohibited. 

Le contenu de ce message et les pièces jointes sont destinés uniquement pour le(s) destinataire(s) et peuvent contenir des informations confidentielles et / ou privilégiées qui peuvent être protégées légalement contre toute divulgation. Si vous n'êtes pas le destinataire de ce message ou son agent, ou si ce message vous a été adressé par erreur, s’il vous plaît avertir immédiatement l'expéditeur par courriel de réponse, puis supprimer ce message et les pièces jointes. Si vous n'êtes pas le destinataire prévu, vous êtes par la présente informé que toute utilisation, diffusion, copie, ou stockage de ce message ou de ses pièces jointes est strictement interdit.


jer...@bodycad.com

unread,
Mar 28, 2017, 1:59:47 PM3/28/17
to Jenkins Users
This seem like a declarative way bug too me. I do this into full scripts (changing the current build result) and it work fine.
I haven't tested the declarative (post {}, always {}, ...), but you could try a Jenkinsfile without the declarative syntax:

node()
{
try
{
 
// make you junit test that make unstable here
}catch()
{
    if (currentBuild.result == 'UNSTABLE')
 
  currentBuild.result = 'SUCCESS'
}
}

This should work, if so, it mean that the declarative syntax have a bug in it and the currentBuild.result is somehow a copy used into the post scope and restore after the processing of the declarative post {}. You should open a bug report if so.

Tomas Pekarovic

unread,
Mar 28, 2017, 3:13:25 PM3/28/17
to jenkins...@googlegroups.com
 Thanks, but this approach is not working.
1)  junit 'res.xml'  will always report unstable ( I just can't get it to report something else)
2) catch will not catch unstable build
3) I tried:
.....
parallel(
    "test1": {
node('master'){
bat 'exit 0'
bat 'type ei_result.xml > res.xml'
try {
                       junit 'res.xml'
                       if (currentBuild.result == 'UNSTABLE'){
currentBuild.result = 'SUCCESS'
                        }
} catch(err) {
                        throw(err)
}
}
},
"test2": {
  node('robot'){
echo "dfds"
}  .......

It's always ending up Yellow, as unstable


--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/r35UO_Ji4c8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-users+unsubscribe@googlegroups.com.

Gardell, Steven

unread,
Mar 28, 2017, 3:19:17 PM3/28/17
to jenkins...@googlegroups.com

I am not sure if it is by design or not, but my experience is that setting currentBuild.result is unreliable. For example I saw it ‘cause’ a subsequent crash in the xunit results parser. So what I have settled on is using the groovy post-build API to set this, and treating ‘currentBuild.result’ as read-only.

To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

 

--

You received this message because you are subscribed to the Google Groups "Jenkins Users" group.

To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAKokUHBRdQ1LFPgc7WzPPojzz4hpFnMzjPX_%2BqW3Q%3DEu8jAbTw%40mail.gmail.com.

Reply all
Reply to author
Forward
0 new messages