Jenkins Pipeline Checkout SVN 到自定义工作区

Jenkins Pipeline Checkout SVN to custom workspace

我现在正在编写 Jenkins 管道脚本(声明式)。基本上是这样的:

pipeline {
    agent any
    environment {
        NLS_LANG = 'GERMAN_GERMANY.AL32UTF8'
    }
    stages {
        stage('Test') {
            steps {
                script {
                    echo "Test"
                }
            }
        }
    }
}

脚本本身工作正常。但是我们现在发现,jenkins 首先检查我们的 SVN 存储库以找到 Jenkinsfile(在 job Folder > C:\jenkins_home\jobs\<Projectname>\jobs\<Jobname> 中的文件夹 workspace@script 中检查)。

然后整个 SVN 在我没有写在 Jenkinsfile 中的第二步中再次检出(标题:“Declarative: SCM Checkout”)。 如果我们可以更改此签出的路径,那就没问题了,因为目前它会在 job folder 中新创建的 workspace 文件夹中签出。

这里是管道作业控制台输出的屏幕截图:

如何实现自定义工作区的签出?

最好它只会在第一次签出时单独签出 Jenkinsfile,而不是整个存储库。 我试图将 repository url 更改为保存 Jenkinsfile 的文件夹(单独),但是管道也(仅)在第二次结帐时检查此文件夹。

这里是控制台输出的屏幕截图:

在解决这个问题时可能与谁有关:使用 ws('/path/to/dir') 分配不同的目录(参见 Pipeline: Nodes and processes

pipeline {
    agent any
    environment {
        NLS_LANG = 'GERMAN_GERMANY.AL32UTF8'
    }
stages {
    stage('Test') {
        steps {
            script {
                echo "Test"
                ws('/path/to/dir'){
                    //dosomething here, like "checkout scm"
                }
            }
        }
    }
}