2017-08-10 188 views
0

我找到了一个在这里轮询SVN存储库的解决方案(How do I configure a Jenkins Pipeline to be triggered by polling SubVersion?)。与Jenkins的SCM轮询工作流和变量

问题是,如果我将svn路径设置为有效的svn地址(例如https://srvsvn2/svn/xyz),则轮询存储库会正常工作。 如果我使用Job变量(如IMPL_PATH_SVN_PROJECT的值为https://srvsvn2/svn/xyz),并且在管道脚本中使用该变量,但手动构建工作正常,但轮询机制不再有效。

使用这个变量是不可或缺的,因为我想在许多Jenkins项目构建作业中使用这个管道脚本。

#!groovy 

stage "checkout trunk" 
node { 
checkout poll: true, scm: [$class: 'SubversionSCM', additionalCredentials: [[credentialsId: '94a82ac2-8282-486d-b0c1-6cfa1c05c499', realm: '<https://srvsvn2:443>']], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[credentialsId: '94a82ac2-8282-486d-b0c1-6cfa1c05c499', depthOption: 'infinity', ignoreExternalsOption: false, local: '.', remote: '${IMPL_PATH_SVN_PROJECT}@HEAD']], workspaceUpdater: [$class: 'CheckoutUpdater']] 

... 

// Build 
node { 
    stage "Build Project ${JOB_NAME}" 
     bat 'python BuildScripts\\Build.py "%WORKSPACE%"' 
    } 

有没有人知道这个问题的一个很好的解决方案?

与后提交脚本,运行SVN服务器上的帮助启动作业是不是在这种情况下的解决方案(有很多_externals应该开始一个完整的项目建设。)

在非常感谢提前!

回答

0

用git运行同样的问题。 解决方案是在使用变量时替换引号字符。

尝试

remote: "${IMPL_PATH_SVN_PROJECT}@HEAD" 

,而不是

remote: '${IMPL_PATH_SVN_PROJECT}@HEAD' 
+0

非常感谢!这对我有效。 :) – user5514843