Thanks a lot Victor, the links provided made it much clear now and the example worked just fine. You are always saving me hehe
El jueves, 11 de febrero de 2021 a las 22:11:15 UTC+1, [email protected] escribió: > You can simplify it quite a bit with the post stage event > https://www.jenkins.io/doc/book/pipeline/syntax/#post > > The example pipeline uses the post *stages* section, you can use the one > specific the stage 3 > > Another example can be found in > https://www.jenkins.io/blog/2017/02/15/declarative-notifications/ > > Environment variables within an environment section are immutable, though > you can use the script closure with the env map to set a new env variable > that can be override > > For instance: > > stage(“stage 3”) { > steps{ > script{ > env.FAILED_STAGE=env.STAGE_NAME > } > error ... > } > } > > Cheers > > > > > > See > > On Thursday, 11 February 2021 at 17:56:40 UTC [email protected] > wrote: > >> >> I have a declarative pipeline with a few steps. at the end I send a message >> to slack with some statistics of the compilation times and some more >> information. I want to send in case it fails the stage at which it fails. I >> have set a global variable but the function does not seem to be able to read >> its value. This is a simplified version of what I have: >> >> ``` >> def FAILED_STAGE >> >> def sendSlackNotifcation() >> { >> if ( currentBuild.currentResult == "SUCCESS" ) { >> >> slackSend message: "${currentBuild.result}", channel: '#jenkins_bot2' >> } >> >> else { >> >> slackSend color : "#FF0000", message: "${FAILED_STAGE}", channel: >> '#jenkins_bot2' >> >> } >> } >> >> pipeline { >> agent any >> >> stages { >> stage('stage1') { >> steps{ >> echo "stage1" >> } >> } >> >> stage('stage2') { >> steps{ >> echo "stage2" >> } >> } >> >> stage("Stage 3") { >> steps { >> script { >> FAILED_STAGE=env.STAGE_NAME >> echo "${FAILED_STAGE}" >> error "failed for some reason." >> } >> } >> } >> } >> post { >> failure { >> sendSlackNotifcation() >> } >> } >> >> } >> ``` >> And this is the output I get: >> ``` >> 13:38:53 [Pipeline] { >> 13:38:53 [Pipeline] stage >> 13:38:53 [Pipeline] { (stage1) >> 13:38:53 [Pipeline] echo >> 13:38:53 stage1 >> 13:38:53 [Pipeline] } >> 13:38:53 [Pipeline] // stage >> 13:38:53 [Pipeline] stage >> 13:38:53 [Pipeline] { (stage2) >> 13:38:53 [Pipeline] echo >> 13:38:53 stage2 >> 13:38:53 [Pipeline] } >> 13:38:53 [Pipeline] // stage >> 13:38:53 [Pipeline] stage >> 13:38:53 [Pipeline] { (Stage 3) >> 13:38:53 [Pipeline] script >> 13:38:53 [Pipeline] { >> 13:38:53 [Pipeline] echo >> 13:38:53 Stage 3 >> 13:38:53 [Pipeline] error >> 13:38:53 [Pipeline] } >> 13:38:53 [Pipeline] // script >> 13:38:53 [Pipeline] } >> 13:38:53 [Pipeline] // stage >> 13:38:53 [Pipeline] stage >> 13:38:53 [Pipeline] { (Declarative: Post Actions) >> 13:38:53 Error when executing failure post condition: >> >> 13:38:53 groovy.lang.MissingPropertyException: No such property: >> FAILED_STAGE for class: WorkflowScript >> ``` >> > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/16c44a41-f7a2-4c4e-94d3-c820bebdf138n%40googlegroups.com.
