2017-10-12 1 views
0

Gibt es eine Möglichkeit, den Speicherort des Checkouts mithilfe von "agent" (nicht "node") in einer Jenkins-Datei anzugeben?Geben Sie den Checkout-Standort mithilfe des Agenten (nicht des Knotens) an

pipeline { 
    agent { label 'my_label' } 
    stages { 
    stage('Checkout') { 
     steps { 
     // Dang. my_repo has already been checked out 
     dir('my_repo') { 
      checkout scm 
     } 
     } 
    } 
    } 
} 

Es scheint, wenn Sie „Knoten“ verwenden Sie die Möglichkeit, dies zu tun haben, aber ich kann nicht einen Weg zu finden, scheinen mit „Agent“ zu tun.

Antwort

1

Wenn Sie setzen skipDefaultCheckout(), dann können Sie Ihre SCM Kasse, wenn Sie wollen:

pipeline { 
    agent { label 'my_label' } 
    options { 
    skipDefaultCheckout() 
    } 
    stages { 
    stage('Checkout') { 
     steps { 
     // SWEET! my_repo has not been checked out 
     dir('my_repo') { 
      checkout scm 
     } 
     } 
    } 
    } 
} 

Alternativ einige der SCMs bieten Optionen erweiterte Kasse, dass Sie die Kasse in einen anderen Pfad tun lassen.

Beachten Sie jedoch, dass Sie, wenn Sie mehrere Agenten verwenden, die Kasse jedes Mal manuell testen müssen, wenn Sie einen anderen Agenten verwenden. Wenn Sie den gleichen Arbeitsbereich verwenden, aber es gibt keine Garantie. Sie sollten immer checkout scm ausführen, nur für den Fall, dass dies nicht der Fall ist.

+0

Super! Ich wusste nicht, dass du das tust! Ich bin mir nicht sicher, welches Szenario mehrere Agenten rechtfertigt, aber ich werde auch etwas darüber recherchieren. Danke! – grayaii

+1

Sagen Sie zum Beispiel, Sie haben eine bestimmte Software auf einem Agenten. Oder vielleicht müssen Sie einen Teil Ihres Builds ausführen oder Test auf Windows und Teil auf Linux Dann können Sie verschiedene Agenten für jeden spezifizieren –

+0

So löste das Ihr Problem? Wenn ja, würde ich schätzen, wenn Sie dies als die akzeptierte Antwort markieren könnten. –

Verwandte Themen