swe*_*eet 6 jenkins jenkins-pipeline
我创建了一个管道作业,并希望获得svn版本号,以在调用Shell脚本时启用进一步的下游处理。我正在使用类似于以下内容的管道脚本:
node {
// Mark the code checkout 'stage'....
stage 'Checkout'
// Get some code from a SVM repository
checkout(
[
$class: 'SubversionSCM',
additionalCredentials: [],
excludedCommitMessages: '',
excludedRegions: '',
excludedRevprop: '',
excludedUsers: '',
filterChangelog: false,
ignoreDirPropChanges: false,
includedRegions: '',
locations: [
[
...
]
],
workspaceUpdater: [$class: 'UpdateUpdater']
]
)
def svnversionnumber=${SVN_VERSION}
sh "/.../someshellscript ${svnversionnumber};"
}
Run Code Online (Sandbox Code Playgroud)
是否有有关结帐功能的文档?可以获取svn修订版号吗?我可以看到修订已输出到日志。
小智 7
我遇到了同样的问题,但是您可以使用调用SCM checkout返回的映射来解决。它包含SVN_REVISION的值。
// Get some code from a SVM repository
def scmVars = checkout(
...
)
def svnversionnumber = scmVars.SVN_REVISION
Run Code Online (Sandbox Code Playgroud)
在 Groovy 管道脚本中,可以将checkout scm命令结果获取到 TreeMap 变量中,然后获取您需要的内容:
def checkoutResults = checkout([
poll: false,
scm: [
$class: 'SubversionSCM',
...
]
])
echo 'checkout results' + checkoutResults.toString()
echo 'checkout revision' + checkoutResults['SVN_REVISION']
echo 'checkout revision' + checkoutResults['SVN_REVISION_1']
echo 'checkout revision' + checkoutResults['SVN_REVISION_2']
Run Code Online (Sandbox Code Playgroud)