管道:文件夹在从 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?
我正在将一个文件夹从一个 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?