78 lines
2.4 KiB
Groovy
78 lines
2.4 KiB
Groovy
import org.jenkinsci.plugins.pipeline.modeldefinition.Utils
|
|
|
|
void when(Boolean condition, body) {
|
|
Map config = [:]
|
|
body.resolveStrategy = Closure.OWNER_FIRST
|
|
body.delegate = config
|
|
|
|
if (condition) {
|
|
body()
|
|
} else {
|
|
Utils.markStageSkippedForConditional(STAGE_NAME)
|
|
}
|
|
}
|
|
|
|
@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
|
|
}
|
|
|
|
String getProjectVersionDefaultChannel() {
|
|
return sh(script: 'git rev-parse --abbrev-ref HEAD', returnStdout: true).trim().toLowerCase().replaceAll('[_- ]+', '')
|
|
}
|
|
|
|
String getProjectVersionDefaultShortChannel() {
|
|
String channel = getProjectVersionDefaultChannel()
|
|
switch (channel) {
|
|
case 'develop':
|
|
return 'dev'
|
|
case 'testing':
|
|
return 'tst'
|
|
case 'stable':
|
|
return 'stb'
|
|
default:
|
|
throw new Exception("No rule to compute short channel for '${channel}' !")
|
|
}
|
|
}
|
|
|
|
String getProjectVersionTag(String overrideChannel = '') {
|
|
String channel = overrideChannel ? overrideChannel : getProjectVersionDefaultChannel()
|
|
|
|
String versionTag = sh(script:"echo $(date +%Y.%-m.%-d)-${channel}.$(date +%-H%M).$(git rev-parse --short HEAD)", returnStdout: true).trim()
|
|
|
|
return versionTag
|
|
}
|
|
|
|
String getProjectVersionShortTag(String overrideShortChannel = '') {
|
|
String shortChannel = overrideShortChannel ? overrideShortChannel : getProjectVersionDefaultShortChannel()
|
|
|
|
String versionTag = sh(script:"echo $(date +%Y.%-m.%-d)-${shortChannel}.$(date +%-H%M)", returnStdout: true).trim()
|
|
|
|
return versionTag
|
|
} |