diff --git a/vars/gitea.groovy b/vars/gitea.groovy index 078e00b..19880d6 100644 --- a/vars/gitea.groovy +++ b/vars/gitea.groovy @@ -101,6 +101,18 @@ void release(String credentialsId, String org, String project, Map options = [:] deleteDir() } } + + rocketSend( + avatar: 'https://jenkins.cadol.es/static/b5f67753/images/headshot.png', + message: """ + Nouvelle version publiée pour le projet `${org}/${project}`: [${releaseName}](${baseUrl}/${org}/${project}/releases/tag/${releaseVersion}) + + [Visualiser le job](${env.RUN_DISPLAY_URL}) + + @${utils.getBuildUser()} + """.stripIndent(), + rawMessage: true + ) } // Télécharge les fichiers associés à une "version" publiée sur un projet Gitea diff --git a/vars/utils.groovy b/vars/utils.groovy index 611625a..1f5de22 100644 --- a/vars/utils.groovy +++ b/vars/utils.groovy @@ -10,4 +10,35 @@ void when(Boolean condition, body) { } else { Utils.markStageSkippedForConditional(STAGE_NAME) } -} \ No newline at end of file +} + +@NonCPS +String getBuildUser() { + def build = currentBuild.rawBuild + String buildUser = '' + + // On essaie de récupérer l'utilisateur à l'origine de l'exécution du job + try { + def cause = build.getCause(hudson.model.Cause.UserIdCause.class) + buildUser = cause.getUserName() + } catch (Exception ex) { + // On ignore l'erreur + } + + if (buildUser == '') { + // Si on a pas réussi à retrouver l'utilisateur, on récupère celui du commit courant + try { + def committerUsername = sh(script: 'git --no-pager show -s --format=\'%ae\' | cut -d\'@\' -f1', returnStdout: true).trim() + buildUser = committerUsername + } catch (Exception ex) { + // On ignore l'erreur + } + } + + if (buildUser == '') { + // Par défaut, on considère que jenkins est à l'origine du job + buildUser = 'jenkins' + } + + return buildUser +}