问题:使用 SVN 的詹金斯管道脚本中的重复变更日志

这个问题基本上和这个一样,除了我使用的是颠覆,没有插件更新对我有用。

我正在使用多分支管道设置加载我的 Jenkinsfile 脚本,并且更改日志在每个新的checkout scm处都被复制。

由于在我的构建中我使用了多个工作区,通过parallel块内的node分配,我正在为每个工作区调用新的检查,并且更改日志重复变得有点烦人。

解答

面临同样的问题。

我正在执行以下操作,直到发布了针对 SVN 插件的修复程序。

currentBuild.getChangeSets().clear()
checkout scm

注意:您可能需要通过“正在进行的脚本批准”页面批准脚本调用。

这将从 Jenkins 作业中清除更改日志。 'checkout scm' 调用将再次填充更改日志。 更新:在下面检查我的编辑。这个“解决方案”不起作用,因为重新启动后重新添加删除的修订......我不明白为什么,但是......

编辑:

好的,现在我找到了一种新方法:

for(i = 0; i < scm.getLocations().length; i++) {
        def location = scm.getLocations()[i]
        def svn_url = location.remote
        checkout changelog: false, poll: false, scm: [$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[credentialsId: '252ad9ab-2f39-46f5-a77a-6196d1679dee', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: svn_url]], workspaceUpdater: [$class: 'UpdateWithRevertUpdater']]
    }

您应该使用“管道语法”页面来获取正确的凭据。我试着只用

checkout changelog: false, scm

但这没有用。所以你必须使用上面显示的长版本。

Logo

CI/CD社区为您提供最前沿的新闻资讯和知识内容

更多推荐