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

Posted

技术标签:

【中文标题】Jenkins管道如何更改到另一个文件夹【英文标题】:Jenkins pipeline how to change to another folder 【发布时间】:2019-02-21 15:56:52 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

dir("folder") 
    sh "pwd"

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

【讨论】:

但它会进入当前工作文件夹。我想切换到詹金斯工作区 你怎么回去向上? @DanDan 此dir 步骤之外的所有内容都是“向上”,另请参见 Gonzalo Robert Diaz 的答案/示例:***.com/a/59776342/757308 请注意,目录之外的目录已重置。它不像外壳中的cd directory 当我尝试运行 sh 'git add .'在“文件夹”中,它向我抛出了这个错误: + git add 。致命:不是 git 存储库(或任何父目录):.git【参考方案2】:

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

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

【讨论】:

【参考方案3】:

使用 WORKSPACE 环境变量更改工作区目录。

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

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

【讨论】:

dir('aQA') 的工作方式相同。不需要那么复杂

以上是关于Jenkins管道如何更改到另一个文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jenkins 管道中使用 SSH?

如何在Jenkins管道中使用自定义Dockerfile名称?

如何从 jenkins 作业的 scm 轮询中排除 jenkins 文件

如何在将通用工件上传到jenkins管道中的JFrog Artifactory时重命名现有文件夹

获取已推送更改的已更改分支的名称,Jenkins管道脚本

如何在声明性 Jenkins 管道的各个阶段之间传递变量?