Merge branch 'master' of lcle/HTLLE-DA-Vorlage_Jenkinsfile into master

This commit is contained in:
Günther Hutter 2020-04-28 11:20:26 +00:00 committed by Gitea
commit cf5842c2d0

36
Jenkinsfile vendored
View File

@ -42,22 +42,22 @@ pipeline {
// add https to the url if not present // add https to the url if not present
env.REPOSITORY = params.REPOSITORY env.REPOSITORY = params.REPOSITORY
if(!env.REPOSITORY.startsWith("https://")) { if (!env.REPOSITORY.startsWith("https://")) {
env.REPOSITORY = "https://" + env.REPOSITORY env.REPOSITORY = "https://" + env.REPOSITORY
} }
// sanitize git dir path // sanitize git dir path
env.GIT_PATH = params.GIT_PATH env.GIT_PATH = params.GIT_PATH
if(env.GIT_PATH.endsWith("/")) { if (env.GIT_PATH.endsWith("/")) {
env.GIT_PATH = env.GIT_PATH.substring( env.GIT_PATH = env.GIT_PATH.substring(
0, (env.GIT_PATH.length() - 1)) 0, (env.GIT_PATH.length() - 1))
} }
if(env.GIT_PATH.startsWith("/")) { if (env.GIT_PATH.startsWith("/")) {
env.GIT_PATH = env.GIT_PATH.substring(1) env.GIT_PATH = env.GIT_PATH.substring(1)
} }
if(env.GIT_PATH.startsWith("~/")) { if (env.GIT_PATH.startsWith("~/")) {
env.GIT_PATH = env.GIT_PATH.substring(2) env.GIT_PATH = env.GIT_PATH.substring(2)
} }
if(env.GIT_PATH.contains("../")) { if (env.GIT_PATH.contains("../")) {
error("GIT_PATH must not contain '../'") error("GIT_PATH must not contain '../'")
} }
@ -65,7 +65,10 @@ pipeline {
env.GIT_BRANCH = params.GIT_BRANCH ?: '*/master' env.GIT_BRANCH = params.GIT_BRANCH ?: '*/master'
// output archive filename // output archive filename
env.ARCHIVE_FILENAME = "diplomarbeit." + params.ARCHIVE_FORMAT env.ARCHIVE_FILENAME = 'diplomarbeit.' + params.ARCHIVE_FORMAT
// if following files exist add them to the output archive
env.ARCHIVE_FILES = 'diplomarbeit.pdf diplomarbeit.pdf.log spellcheck-results.txt'
} }
} }
} }
@ -153,10 +156,17 @@ pipeline {
steps { steps {
dir(env.GIT_PATH) { dir(env.GIT_PATH) {
script { script {
if (params.ARCHIVE_FORMAT == 'zip') { env.FILES_TO_INCLUDE = ''
sh "zip -q ${env.ARCHIVE_FILENAME} diplomarbeit.pdf* spellcheck-results.txt" def include = env.ARCHIVE_FILES.split(' ').each { filename ->
if (fileExists(filename)) {
env.FILES_TO_INCLUDE += (filename + ' ')
}
}
if (env.ARCHIVE_FORMAT == 'zip') {
sh "zip -q ${env.ARCHIVE_FILENAME} ${env.FILES_TO_INCLUDE}"
} else { } else {
sh "tar -czf ${env.ARCHIVE_FILENAME} diplomarbeit.pdf* spellcheck-results.txt" sh "tar -czf ${env.ARCHIVE_FILENAME} ${env.FILES_TO_INCLUDE}"
} }
} }
} }
@ -169,14 +179,14 @@ pipeline {
env.RECIPIENTS = "" env.RECIPIENTS = ""
// get mail addresses // get mail addresses
// needs script approval in jenkins // needs script approval in jenkins
metadata = readFile(file: "${env.GIT_PATH}/metadata.yaml").split('\n').each { line -> def metadata = readFile(file: "${env.GIT_PATH}/metadata.yaml").split('\n').each { line ->
if(line.contains("- build-notification:")) { if (line.contains("- build-notification:")) {
// remove yaml comments // remove yaml comments
if(line.contains('#')) { if (line.contains('#')) {
line = line.substring(0, line.indexOf('#')) line = line.substring(0, line.indexOf('#'))
} }
def mailMatch = line =~ /[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})/ def mailMatch = line =~ /[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})/
if(mailMatch) { if (mailMatch) {
env.RECIPIENTS += (mailMatch[0][0] + ";") env.RECIPIENTS += (mailMatch[0][0] + ";")
} }
} }