管道:文件夹在从 SVN 检出后附加了一个@number

Pipeline : Folder has an appended @number after checkout from SVN

我正在将一个文件夹从一个 SVN 位置检出到 3 个不同的虚拟机上。必须检出文件夹 "MakeBelieve"。所以我使用 Groovy 语法:

checkout([
$class: 'SubversionSCM',
additionalCredentials: [],
excludedCommitMessages: '',
excludedRegions: '',
excludedRevprop: '',
excludedUsers: '',
filterChangelog: false,
ignoreDirPropChanges: false,
includedRegions: '',
locations: [[credentialsId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
depthOption: 'infinity',
ignoreExternalsOption: true,
local: 'MakeBelieve',
remote: 'svn_url_to_be_removed']],
workspaceUpdater: [$class: 'CheckoutUpdater']])

在 3 台虚拟机中,有 2 台机器被签出为 MakeBelieve。但是在其中一台机器上,它被检查为 MakeBelieve@2。不知道为什么会这样。并行阶段表示为:

stage('Check Out Code') {
        parallel {                
            stage('Checkout in Machine1') {
                agent {
                    label "Machine1"
                }
                steps {
                    echo 'Check out code '
                    checkout([$class: 'SubversionSCM', 
                    additionalCredentials: [],
                     excludedCommitMessages: '',
                     excludedRegions: '',
                     excludedRevprop: '',
                     excludedUsers: '',
                     filterChangelog: false,
                     ignoreDirPropChanges: false,
                     includedRegions: '',
                     locations: [[credentialsId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                     depthOption: 'infinity',
                     ignoreExternalsOption: true,
                     local: 'MakeBelieve',
                     remote: 'svn_url']],
                     workspaceUpdater: [$class: 'CheckoutUpdater']])                 
                }
            }               
            stage('Checkout in Machine2') {
                agent {
                    label "Machine2"
                }
                steps {
                    echo 'Check out code in'
                    checkout([$class: 'SubversionSCM', 
                        additionalCredentials: [],
                        excludedCommitMessages: '',
                        excludedRegions: '',
                        excludedRevprop: '',
                        excludedUsers: '',
                        filterChangelog: false,
                        ignoreDirPropChanges: false,
                        includedRegions: '',
                        locations: [[credentialsId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                        depthOption: 'infinity',
                        ignoreExternalsOption: true,
                        local: 'MakeBelieve',
                        remote: 'svn_url']],
                        workspaceUpdater: [$class: 'CheckoutUpdater']])          
                }               
            }
            stage('Checkout in Machine3') {
                agent {
                    label "Machine3"
                }
                steps {
                    echo 'Check out code in'
                    checkout([$class: 'SubversionSCM', 
                        additionalCredentials: [],
                        excludedCommitMessages: '',
                        excludedRegions: '',
                        excludedRevprop: '',
                        excludedUsers: '',
                        filterChangelog: false,
                        ignoreDirPropChanges: false,
                        includedRegions: '',
                        locations: [[credentialsId: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                        depthOption: 'infinity',
                        ignoreExternalsOption: true,
                        local: 'MakeBelieve',
                        remote: 'svn_url']],
                        workspaceUpdater: [$class: 'CheckoutUpdater']])          
                }    
            }        
        }
    }

文件夹应该有相同的名称,而不是 2 台机器有正确的文件夹,最后一台机器被检出为 MakeBelieve@2。我需要它是 MakeBelieve。

我认为这是由于并发构建造成的。对于已经在进行中的每个构建,Jenkins 都会将“@#concurrent build”附加到工作区文件夹(我没有这方面的参考,只是观察我自己的设置)。也许这个 SO 问题可以解决您的问题:

How do I prevent two pipeline jenkins jobs of the same type to run in parallel on the same node?