Hi,

I'm not sure I understood your issue on calling functions. Maybe there is only a bit of confusion about the Jenkins pipeline syntax.

From what you said, you are already calling functions into the post sections: "cleanWs()" is a function, "emailext body: ... " is a function.

So, maybe you are confused by the fact Jenkins syntax in post doesn't allow something like:

post {

    aFunction()

}

So, nope, the above doesn't work. Because the "post" syntax are blocks based on the result of the pipeline and you actually listed all possible options:

"always, changed, fixed, regression, aborted, success, unsuccessful, unstable, failure, notBuilt, cleanup"

And if I understood, you want to call a function that does different things depending on the pipeline result ... then, you need to used "always":

post {

   always {

       aFunction(BUILD_RESULT)

   }

}

And then the function will do different things depending of the BUILD_RESULT value:

if (BUILD_RESULT == "SUCCESS") {

   message = "Pipeline failed"

} else {

   message = "Pipeline ... whatever"

}

I hope that helps.

Cheers,

Gianluca.


On 20/12/2020 17:35, Kernel Panic wrote:

Hello there.

I looking for an elagant way to execute code from the post {} section,
I want to write a clean Jenkinsfile and execute code from shared libraries as
posible.
In the post section I have the tipical  clean working directory like this:

always {
      cleanWs()
    }

I also send notification based on pipeline completion, I mean, aobrted , failed, changed and so on,  but I want to call a function to do that, I want to remove the
email code I have something like this:

emailext body: 'Check console output at $BUILD_URL to view the results. \n\n ${CHANGES} \n\n --------------------------------- \n${BUILD_LOG, maxLines=50, escapeHtml=false}',
                to: "${EMAIL_ADDRESSES}",
                subject: 'Pipeline Execution  Failed: $PROJECT_NAME - #$BUILD_NUMBER'

The problem seems that from the post you only can call an expected function of type: always, changed, fixed, regression, aborted, success, unsuccessful, unstable, failure, notBuilt, cleanup.

Is there another way to accomplish this to write a more clean Post section?


Thanks
Regards

--
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+unsubscr...@googlegroups.com <mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/ea74e553-88a7-4925-ade2-27462aaceab1n%40googlegroups.com <https://groups.google.com/d/msgid/jenkinsci-users/ea74e553-88a7-4925-ade2-27462aaceab1n%40googlegroups.com?utm_medium=email&utm_source=footer>.

--
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/7379987a-7062-0c47-d447-98f6a6999142%40gmail.com.

Reply via email to