pipeline { agent { label 'docker-lehrer' } options { buildDiscarder(logRotator(artifactNumToKeepStr: '0')) skipDefaultCheckout() } parameters { string(name: 'USERNAME', defaultValue: 'Username', description: 'Benutzername') password(name: 'PASSWORD', defaultValue: '', description: 'Passwort') string(name: 'REPOSITORY', defaultValue: '.git', description: 'URL Git-Repository DA - default Wert: Baue Vorlage') string(name: 'BRANCH', defaultValue: 'master', description: 'Branch') string(name: 'PATH', defaultValue: '', description: "Pfad zur DA in git (z.B.: dipl/)") } stages { stage('Clean checkout of the template') { when { expression { '.git' == params.REPOSITORY } } steps{ cleanWs() checkout scm } } stage('Build only template') { when { expression { '.git' == params.REPOSITORY } } steps { sh ''' cp -rv HTLLE-DA-Vorlage/example/* . make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd) ''' } } stage('Checkout DA') { when { expression { '.git' != params.REPOSITORY } } steps { sh ''' login_url_sub="https://"$(params.USERNAME)":"$(params.PASSWORD)"@" sub='https;//' git clone --recurse-submodules --remote-submodules $($(params.REPOSITORY)/$(sub)/$(login_url_sub)) . ''' } } stage('Build DA') { when { expression { '.git' != params.REPOSITORY } } steps { sh ''' cd $(params.PATH) make pdf -C HTLLE-DA-Vorlage SOURCEDIR=$(pwd) ''' } } stage('Test if diplomarbeit.pdf was build') { steps { sh "test -f diplomarbeit.pdf" } } } post { always { emailext attachLog: true, attachmentsPattern: 'diplomarbeit.pdf*', body: "${currentBuild.currentResult}: Job ${env.JOB_NAME} build ${env.BUILD_NUMBER}", recipientProviders: [requestor()], subject: "Jenkins Diplomarbeit Build ${currentBuild.currentResult}" } } }