Jenkins管道如何更改到另一个文件夹


77

目前,我正在使用Jenkins管道脚本。

要运行一个命令,我需要访问其工作区目录外部的文件夹。

我尝试过sh "cd $workspace/",但是它返回了当前的工作区文件夹。

如何更改为根工作区目录,然后cd到另一个文件夹。请帮忙。

Answers:


150

您可以使用dir步骤,例如:

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

folder可以是相对或绝对路径。


但它将进入当前作业文件夹中。我想切换到jenkins工作区
流浪者18/09/17

你怎么回去向上?
DanDan

@DanDan此dir步骤之外的所有内容均“向上返回”,另请参见贡萨洛·罗伯特·迪亚兹(Gonzalo Robert Diaz)的答案/示例:stackoverflow.com/a/59776342/757308
msa

请注意,在目录之外,目录已重置。不像cd directory在外壳中。
kap

18

使用WORKSPACE环境变量来更改工作空间目录。

如果使用Jenkinsfile,请使用以下代码:

dir("${env.WORKSPACE}/aQA"){
    sh "pwd"
}

dir('aQA')以相同的方式工作。不需要那种复杂性
Kirill

18

所述dir包装可以包装,任何其他步骤,而这一切工作的内部steps块,例如:

        steps {
          sh "pwd"
          dir('your-sub-directory'){
            sh "pwd"
          }
          sh "pwd"
        } 

2
sh "$PWD"是不正确的命令,因为您正在尝试自行执行路径。
kenorb

2
@GonzaloRobertDíazsh是Jenkins的步骤,它执行您作为shell脚本传递的参数。如果您测试自己的代码,则会permission denied因为$PWD无法执行而收到错误消息。使用echo "$PWD"sh "pwd"代替。另外,学会接受批评。
JP de la Torre
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.