2016-06-15 16 views
8

Bir Groovy pipeline betiği kullanarak Jenkins Build'imin şu anki çalışma alanını elde etmeye çalışıyorum. çalışıyorsa (Geçerli çalışma alanını Jenkins Pipeline Groovy komut dosyasını kullanarak nasıl alabilirsiniz?

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

Veya:

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}" 
} 

O

[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

Olası çoğaltması [Jenkins Pipeline eklentisinde çalışma alanı dizinine mutlak yol al] (http://stackoverflow.com/questions/36934028/get-absolute-path-to-workpace-directory-in-jenkins-pipeline-plugin) –

cevap

4

Eğer kabuk-dışı okuma dosyası yöntemini kullanmak zorunda hiçbir değişken, henüz bunun için dahil olduğunu döndürür) ana düğümde:

workspace = pwd() 
+0

readFile() sonucunu kırpmayı unutmayın (aksi halde sizden yeni bir satır dolduracaksınız) Hiçbir yerde. – Chadi

+0

Teşekkür ederim !!!!!! – vijay

2

I y düşünmek ou da belirli bir düğümde pwd() fonksiyonunu çalıştırmak için kullanabilirsiniz: 'Çalışma alanı' Benim için

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

sadece "$ {çalışma alanı}" bile değişkeni başlatılıyor olmadan çalıştı

+2

çalışıyorum bana da sadece büyük harfle "$ {WORKSPACE}" işleri, '$ {workspace}' değil – Rhubarb

+1

Her ikisi de benim için çalışıyor. :) –

İlgili konular