Jenkins pipeline 如何切换到另一个文件夹?

141

目前我正在使用Jenkins pipeline脚本。

为了运行一个命令,我需要访问工作空间目录之外的文件夹。

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

我如何切换到根工作空间目录,然后进入另一个文件夹?请帮忙。

3个回答

252

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

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

文件夹可以是相对路径或绝对路径。


但它将进入当前作业文件夹。我想切换到Jenkins工作区。 - wanderors
1
你如何向上返回? - DanDan
3
@DanDan,在dir步骤之外的所有内容都是“向上返回”的,另请参考Gonzalo Robert Diaz的答案/示例:https://dev59.com/o1QK5IYBdhLWcg3wJMq0#59776342 - msa
请注意,在目录之外,目录会被重置。这不像在 shell 中的 cd directory - kap
当我尝试在“文件夹”内运行sh 'git add .'时,它抛出了以下错误:+ git add . 致命错误:不是git存储库(或任何父目录):.git - python_newbie

61

dir包装器可以包装任何其他步骤,并且所有步骤都在steps块内部工作,例如:

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

37

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

如果在使用 Jenkinsfile,则使用以下代码:

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

18
dir('aQA') 的用法与之前相同,不需要那么复杂的操作。 - Kirill
3
如果您想确保在工作区的根目录中运行命令怎么办? - Mattia Rasulo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接