2016-06-15 9 views
8

Ich versuche, den aktuellen Arbeitsbereich meines Jenkins Build mit einem Groovy-Pipeline-Skript zu erhalten.Wie kann der aktuelle Arbeitsbereich mit Jenkins Pipeline Groovy Skript abgerufen werden?

node('master') { 
// PULL IN ENVIRONMENT VARIABLES 
// Jenkins makes these variables available for each job it runs 
def buildNumber = env.BUILD_NUMBER 
def workspace = env.WORKSPACE 
def buildUrl = env.BUILD_URL 
// PRINT ENVIRONMENT TO JOB 
echo "workspace directory is ${workspace}" 
echo "build URL is ${env.BUILD_URL}" 
} 

Es gibt

[Pipeline] Allocate node : Start 
    Running on master in /Users/Shared/Jenkins/Home/jobs/test/workspace 
    [Pipeline] node { 
    [Pipeline] echo 
    workspace directory is null 
    [Pipeline] echo 
    build URL is http://localhost:8080/job/test/5/ 
    [Pipeline] } //node 
    [Pipeline] Allocate node : End 
[Pipeline] End of Pipeline 
    Finished: SUCCESS 
+1

https://issues.jenkins-ci.org/plugins/servlet/mobile#issue/JENKINS-33511 –

+1

Mögliches Duplikat von [Absoluter Pfad zum Arbeitsbereichsverzeichnis im Jenkins-Pipeline-Plug-in] (http://stackoverflow.com)/questions/36934028/get-absolute-pfad-zu-arbeitsbereich-verzeichnis-in-jenkins-pipeline-plugin) –

Antwort

4

Es gibt keine Variable ist noch für das enthalten, so dass Sie Shell-out-Lese-Datei-Methode verwenden müssen:

sh 'pwd > workspace' 
workspace = readFile('workspace').trim() 

Oder (bei Lauf am Masterknoten):

workspace = pwd() 
+0

Vergiss nicht, dein readFile() Ergebnis zu trimmen(), sonst wirst du mit einem Zeilenumbruch enden nirgends. – Chadi

+0

Danke !!!!!! Arbeiten – vijay

2

Ich denke y ou kann auch die Entsenderichtlinie() Funktion auf dem bestimmten Knoten ausführen: ‚Arbeitsbereich‘

node { 
    def PWD = pwd(); 
    ... 
} 
5

für mich nur „$ {} Arbeitsplatz“ gearbeitet, ohne auch nur die Variable initialisiert

+2

ich auch, aber nur mit Großbuchstaben '$ {WORKSPACE}' funktioniert, '$ {workspace}' tut nicht – Rhubarb

+1

Beide funktioniert für mich. :) –

Verwandte Themen