0

我正在运行一个 Jenkins Pipeline,其中在提交合并请求时触发构建。构建运行,SonarQube 分析工作区。另一个合并请求同时提交并且构建运行,但 SonarQube 失败并出现以下错误:

ERROR: Error during SonarQube Scanner execution ERROR: Another SonarQube analysis is already in progress for this project

如何同时为同一个项目运行多个 SonarQube 分析?

4

1 回答 1

0

在 Jenkins 方面,解决方案是在您的工作区中为每次结帐设置不同的 repo 目录,这样您就不会两次遇到同一个锁定项目。您可以通过多种方式执行此操作,这仅取决于您希望同时进行多少并发构建。

假设您使用的是 Git,您可以在您的 checkout 命令的扩展部分中添加它,以根据其内部版本号和一个工作区目录(即您的管道目录)在其自己的目录中签出每个构建。

[$class: 'RelativeTargetDirectory', relativeTargetDir: "${BUILD_NUMBER}" ]

您有两种选择进行清理,或者使用签出命令中的“清除存储库并强制克隆”,或者使用 Workspace Cleanup Plugin。

请记住,结帐擦除命令将删除您即将进行下一次结帐的目录下的所有内容,这意味着它将保持您工作区的其余部分完好无损,并且如果您使用上面示例中的内部版本号,它将无法工作。以下是您需要添加到扩展部分的内容:

[$class: 'WipeWorkspace']

cleanWS 插件为您提供了更大的灵活性,因为您可以为要包含的内容指定模式,或者在更改类型时排除:

cleanWs(模式:[[模式:'',类型:'INCLUDE']])

我希望这有帮助。

于 2018-12-31T16:02:46.323 回答