Legen Sie die build-name und-Beschreibung von einem Jenkins Deklarative Pipeline

Ich würde gerne den build-Namen und die Beschreibung aus einem Jenkins Deklarative Pipeline, aber nicht finden können, den richtigen Weg, es zu tun. Ich habe versucht, mit einer Umgebung Klammer nach der pipeline, das mit einem Knoten Halterung in einem Agenten-Halterung, usw. Ich bekomme immer syntax Fehler.

Die Letzte version meiner Jenkinsfile geht in etwa so:

pipeline {  
    stages {
        stage("Build") {
            steps {
                echo "Building application..."
                bat "%ANT_HOME%/bin/ant.bat clean compile"
                currentBuild.name = "MY_VERSION_NUMBER"
                currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER"
            }
        }
        stage("Unit Tests") {
            steps {
                echo "Testing (JUnit)..."
            echo "Testing (pitest)..."
                bat "%ANT_HOME%/bin/ant.bat run-unit-tests"
            }
        }
        stage("Functional Test") {
            steps {
                echo "Selenium..."
            }
        }
        stage("Performance Test") {
            steps {
                echo "JMeter.."
            }
        }
        stage("Quality Analysis") {
            steps {
                echo "Running SonarQube..."
                bat "%ANT_HOME%/bin/ant.bat run-sonarqube-analysis"
            }
        }
        stage("Security Assessment") {
            steps {
                echo "ZAP..."
            }
        }
        stage("Approval") {
            steps {
            echo "Approval by a CS03"
            }
        }
        stage("Deploy") {
            steps {
                echo "Deploying..."
            }
        }
    }
    post {      
        always {
            junit '/test/reports/*.xml'
        }
        failure {
            emailext attachLog: true, body: '', compressLog: true, recipientProviders: [[$class: 'CulpritsRecipientProvider'], [$class: 'DevelopersRecipientProvider']], subject: '[JENKINS] MY_PROJECT build failed', to: '...recipients...'
        }
        success {
            emailext attachLog: false, body: '', compressLog: false, recipientProviders: [[$class: 'DevelopersRecipientProvider']], subject: '[JENKINS] MY_PROJECT build succeeded', to: '...recipients...'
        }
    }       
}

Fehler:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 11: Expected a step @ line 11, column 5.
                currentBuild.name = "MY_VERSION_NUMBER"
       ^

WorkflowScript: 12: Expected a step @ line 12, column 5.
                currentBuild.description = "MY_PROJECT MY_VERSION_NUMBER"
       ^

Im Idealfall würde ich mag in der Lage sein zu Lesen MY_PROJECT und MY_VERSION_NUMBER aus dem build.Datei Eigenschaften, oder von den Jenkins-build-log. Weitere Hinweise zu dieser Anforderung würde geschätzt werden, wie gut.

UPDATE

Basierend auf der Antwort, die ich hatte unter der folgenden gearbeitet:

stage("Build") {
    steps {
        echo "Building application..."
        bat "%ANT_HOME%/bin/ant.bat clean compile"

        script {
            def props = readProperties  file: 'build.properties'
            currentBuild.displayName = "v" + props['application.version']
        }
    }

Nun die build-version wird automatisch eingestellt, während die pipeline durch das Lesen der bauen.Eigenschaften-Datei.

Schreibe einen Kommentar