使用 Jenkins Workflow 和变量的 SCM 轮询

SCM polling with Jenkins Workflow and variables

我在此处找到了轮询 SVN 存储库的解决方案 ()。

事实是,如果我将 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%"'
    }

有谁知道解决这个问题的好办法吗?

在 post-commit 脚本的帮助下启动作业,在 SVN 服务器上运行,在这种情况下不是解决方案(有许多 _externals 应该启动完整的项目构建。)

非常感谢!

运行 遇到与 git 相同的问题。 解决方案是在使用变量时替换引号。

尝试

remote: "${IMPL_PATH_SVN_PROJECT}@HEAD"

而不是

remote: '${IMPL_PATH_SVN_PROJECT}@HEAD'