From 8a939b2453e7e6c4ba9adf9b5ec015965a9dd2ac Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 26 Oct 2017 11:55:48 +0200 Subject: [PATCH] provo nuova versione changelog in email... --- Jenkinsfile | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 0d4e2212..6469e43b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,8 @@ pipeline { agent none + environment { + EMAIL_RECIPIENTS = 'samuele@steamware.net' + } stages { stage('Checkout') { agent any @@ -99,13 +102,45 @@ pipeline { } post { success { - mail to:"samuele@steamware.net", subject:"SUCCESS: ${currentBuild.fullDisplayName}", body: "Build passed." + // mail to:"samuele@steamware.net", subject:"SUCCESS: ${currentBuild.fullDisplayName}", body: "Build passed." + sendEmail("Successful") } failure { - mail to:"samuele@steamware.net", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Build failed." + // mail to:"samuele@steamware.net", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Build failed." + sendEmail("Failed") } unstable { mail to:"samuele@steamware.net", subject:"UNSTABLE: ${currentBuild.fullDisplayName}", body: "Build is unstable." } } +} + + +@NonCPS +def getChangeString() { + MAX_MSG_LEN = 100 + def changeString = "" + + echo "Gathering SCM changes" + def changeLogSets = currentBuild.changeSets + for (int i = 0; i < changeLogSets.size(); i++) { + def entries = changeLogSets[i].items + for (int j = 0; j < entries.length; j++) { + def entry = entries[j] + truncated_msg = entry.msg.take(MAX_MSG_LEN) + changeString += " - ${truncated_msg} [${entry.author}]\n" + } + } + + if (!changeString) { + changeString = " - No new changes" + } + return changeString +} + +def sendEmail(status) { + mail ( + to: "$EMAIL_RECIPIENTS", + subject: "Build $BUILD_NUMBER - " + status + " ($JOB_NAME)", + body: "Changes:\n " + getChangeString() + "\n\n Check console output at: $BUILD_URL/console" + "\n") } \ No newline at end of file