使用Jenkins工作流和变量进行SCM轮询

时间:2017-08-10 10:44:12

标签: svn jenkins groovy workflow polling

我找到了一个在此处轮询SVN存储库的解决方案(How do I configure a Jenkins Pipeline to be triggered by polling SubVersion?)。

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

使用此变量是必不可少的,因为我想在许多Jenkins Project Build作业中使用此管道脚本。

#!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应该启动完整的项目构建。)

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

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

尝试

remote: "${IMPL_PATH_SVN_PROJECT}@HEAD"

而不是

remote: '${IMPL_PATH_SVN_PROJECT}@HEAD'