概述

使用Jenkins管道的Jenkinsfile,可以自动化项目的所有CI/CD流程。各种应用程序都可以通过管道构建、测试和部署。此外,每当代码发生变化时,Jenkins管道都可以自动运行,从而节省时间并减少错误。

在Jenkins中,有时我们需要在文件系统(/cs/files-file-systems)上的特定位置运行一系列操作。因此,在这种情况下,我们可以使用“dir”或“sh步骤更改工作目录。

本教程将介绍如何在Jenkins管道中更改工作目录。

使用 dir 步骤

更改Jenkins管道的工作目录有多种方法。dir步是Jenkins内置的一个步骤,允许我们在块持续时间内切换到不同的目录。这在我们想要从特定目录运行特定命令时非常有用。

让我们看一个使用 dir 步骤将当前工作目录更改为子目录“scripts”的例子:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                dir('scripts') {
                    /* execute commands in the scripts directory */
                }
            }
        }
    }
}

在我们的管道中定义了一个名为Build的阶段来更改工作目录。使用 dir 函数,脚本切换到目录“scripts”,然后运行构建步骤。另外,我们使用了“any”代理,在上述脚本中,这意味着任何可用的Jenkins代理都可以执行此管道任务。一旦块结束,工作目录就会回到其原始状态

此外,我们可以通过这种方法更改任何目录,而不仅仅是子目录。为了更改当前工作目录之外的目录,我们需要提供绝对路径:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                dir('/var/jenkins_home/workspace/SamplePipeline/scripts') {
                    /* execute commands in the scripts directory */
                }
            }
        }
    }
}

在上述情况下,我们成功地将工作目录更改为 /var/jenkins_home/workspace/SamplePipeline/scripts

使用 sh 步骤

更改Jenkins管道中目录的另一种方式是使用带有cd命令的 sh 步骤。使用 sh 步骤,我们可以将工作目录更改为 scripts 目录:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'cd scripts'
                    /* execute commands in the scripts directory */
            }
        }
    }
}

在这种情况下,sh 步骤使用 cd 命令将当前工作目录更改为“scripts”。sh 步骤允许我们在管道中执行shell命令。一旦更改了工作目录,管道就会在“scripts”目录内运行构建步骤。

结论

在这篇文章中,我们学习了如何在Jenkins管道中更改工作目录。首先,我们查看了使用 dir 步骤更改目录的方法。之后,我们探索了使用 cd 命令与 sh 步骤实现相同功能。

可以在此处找到目录更改管道的脚本:GitHub仓库