webentwicklung-frage-antwort-db.com.de

Jenkins Globale Umgebungsvariablen in Jenkinsfile

Wie rufe ich globale Umgebungsvariablen in Jenkinsfile auf?
Wenn ich zum Beispiel eine Variable habe -

 name:credentialsId 
 value:xxxx-xxxx-xxxxx-xxxxxxxxx

Wie verwende ich es im Groovy-Skript?

Ich habe es versucht ${credentialsId}, aber es hat nicht funktioniert. Es wird nur Fehler geben:

Java.lang.NoSuchMethodError: No such DSL method '$' found among steps [ArtifactoryGradleBuild, ........
16
ezlee

In einer Jenkins-Datei haben Sie das " Working with the Environment ", das erwähnt:

Die vollständige Liste der Umgebungsvariablen, auf die über die Jenkins-Pipeline zugegriffen werden kann, ist unter localhost dokumentiert: 8080/pipeline-syntax/globals # env,

Die Syntax ist ${env.xxx} wie in:

node {
    echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
}

Siehe auch " Verwalten der Umgebung ".

Wie kann ich die globalen Variablen an das Jenkinsfile übergeben?
Wenn ich Globale Variablen sage, meine ich in

Jenkins -> Manage Jenkins -> Configure System -> Global properties -> Environment variables

Siehe " mgebungsvariablen setzen "

Das Festlegen einer Umgebungsvariablen in einer Jenkins-Pipeline kann mit dem Schritt withEnv erfolgen, mit dem bestimmte Umgebungsvariablen für einen bestimmten Block des Pipeline-Skripts überschrieben werden können. Beispiel:

Jenkinsfile (Pipeline-Skript)

node {
    /* .. snip .. */
    withEnv(["NAME=value"]) {
        ... your job
    }
}
37
VonC

Skriptbasierte Pipeline Um eine Umgebungsvariable zu lesen, deren Namen Sie kennen, verwenden Sie env.NAME

Um eine Umgebungsvariable zu lesen, deren Name erst zur Laufzeit bekannt ist, verwenden Sie env.getProperty(name).

Ein Wert aus einer YAML-Konfigurationsdatei repräsentiert beispielsweise einen Umgebungsvariablennamen:

config.yaml (im Arbeitsbereich)

myconfig:
  key: JOB_DISPLAY_URL

Jenkinsfile

node {
    println("Running job ${env.JOB_NAME}")
    def config = readYaml(file:'config.yaml')
    def value = env.getProperty(config.myconfig.key)
    println("Value of property ${config.myconfig.key} is ${value}")
}
2
Ed Randall

Wenn Sie im Groovy-Bereich auf env verweisen, verwenden Sie einfach env.VARIABLE_NAME, um beispielsweise BUILD_NUMBER des Upstream-Jobs an einen ausgelösten Job zu übergeben:

stage ('Starting job') {
    build job: 'TriggerTest', parameters: [
        [$class: 'StringParameterValue', name: 'upstream_build_number', value: env.BUILD_NUMBER]
    ]
}
2