在多分支设置中,Jenkins Pipeline 是否有办法自动签出最新版本的分支?

Is there a way for a Jenkins Pipeline, in a Multibranch setup, to automatically checkout the branch that is at the latest revision?

我正在尝试在 Jenkins Multibranch 管道中配置作业。 SVN 中有很多分支,我希望作业只检查最新的一个而忽略其余分支。这项工作触发了一个对整个构建进行多次检查的管道......所以我总是需要在最新的分支上触发它,因为在那里我将拥有构建的最新版本。

SVN结构是这样的:V01_01_01到最新的V01_08_03。目前我将其设置如下,在 Jenkins 管道中我有 "checkout scm",但如果出现新分支,例如V01_08_04 我需要 V01_08_03 替换为 V01_08_04。有什么办法吗?

我在 Jenkins 多分支管道中的设置

我找到了破解方法。我创建了一个 python 脚本来检查整个存储库中是否有更新的最新文件夹。

    pipeline
{
    agent any
    parameters
    {
        string(name: 'latest_folder', defaultValue: '')
    }
    stages
    {
        stage ('find latest folder')
        {
            steps
            {
                withPythonEnv('System-CPython-3.8')
                {
                    sh 'pip3 install svn'
                    script {
                        def folder_name = sh(script: 'python3 latest_folder_svn.py', returnStdout: true)
                        env.latest_folder = folder_name
                    }
                }
            }
        }

        stage ('Checkout Step')
        {
            steps
            {
                echo "${env.latest_folder}"
            }
        }
    }
}

我将在结帐步骤中添加此变量,以便始终拥有最新的分支。

python 脚本非常简单。我使用 svn 库来解析存储库并提取我需要的内容。