Jenkins Pipeline, wie man in einen anderen Ordner wechselt

77

Derzeit verwende ich Jenkins Pipeline-Skript.

Um einen Befehl auszuführen, muss ich auf einen Ordner außerhalb seines Arbeitsbereichsverzeichnisses zugreifen.

Ich habe es versucht sh "cd $workspace/", aber es wurde der aktuelle Arbeitsbereichsordner zurückgegeben.

Wie kann ich in das Stammverzeichnis des Arbeitsbereichs und dann in einen anderen Ordner wechseln? Bitte helfen Sie.

Wanderer
quelle

Antworten:

150

Sie können den dir- Schritt verwenden, Beispiel:

dir("folder") {
    sh "pwd"
}

Dies folderkann ein relativer oder absoluter Pfad sein.

tsl0922
quelle
Es wird jedoch in den aktuellen Jobordner verschoben. Ich möchte zu Jenkins Arbeitsbereich wechseln
Wanderer
Wie gehst du wieder nach oben?
DanDan
@DanDan alles außerhalb dieses dirSchritts ist "wieder aufwärts", siehe auch Antwort / Beispiel von Gonzalo Robert Diaz: stackoverflow.com/a/59776342/757308
msa
Beachten Sie, dass das Verzeichnis außerhalb des Verzeichnisses zurückgesetzt wird. Es ist nicht wie cd directoryin einer Muschel.
Kap
18

Verwenden Sie die Umgebungsvariable WORKSPACE, um das Arbeitsbereichsverzeichnis zu ändern.

Verwenden Sie bei Verwendung von Jenkinsfile den folgenden Code:

dir("${env.WORKSPACE}/aQA"){
    sh "pwd"
}
Raj Bangarwa
quelle
dir('aQA')funktioniert genauso. Keine Notwendigkeit für diese Komplexität
Kirill
18

Der dirWrapper kann jeden anderen Schritt umbrechen und alles funktioniert innerhalb eines stepsBlocks, zum Beispiel:

        steps {
          sh "pwd"
          dir('your-sub-directory'){
            sh "pwd"
          }
          sh "pwd"
        } 
Gonzalo Robert Díaz
quelle
2
sh "$PWD"ist kein korrekter Befehl, da Sie versuchen, den Pfad selbst auszuführen.
Kenorb
2
@ GonzaloRobertDíaz shist der Jenkins-Schritt, der das Argument ausführt, das Sie als Shell-Skript übergeben. Wenn Sie Ihren eigenen Code testen, wird eine permission deniedFehlermeldung angezeigt, da diese $PWDnicht ausführbar ist. Verwenden Sie echo "$PWD"oder sh "pwd"stattdessen. Lernen Sie auch, Kritik zu üben.
JP de la Torre