在 Jenkins 方面,解决方案是在您的工作区中为每次结帐设置不同的 repo 目录,这样您就不会两次遇到同一个锁定项目。您可以通过多种方式执行此操作,这仅取决于您希望同时进行多少并发构建。
假设您使用的是 Git,您可以在您的 checkout 命令的扩展部分中添加它,以根据其内部版本号和一个工作区目录(即您的管道目录)在其自己的目录中签出每个构建。
[$class: 'RelativeTargetDirectory', relativeTargetDir: "${BUILD_NUMBER}" ]
您有两种选择进行清理,或者使用签出命令中的“清除存储库并强制克隆”,或者使用 Workspace Cleanup Plugin。
请记住,结帐擦除命令将删除您即将进行下一次结帐的目录下的所有内容,这意味着它将保持您工作区的其余部分完好无损,并且如果您使用上面示例中的内部版本号,它将无法工作。以下是您需要添加到扩展部分的内容:
[$class: 'WipeWorkspace']
cleanWS 插件为您提供了更大的灵活性,因为您可以为要包含的内容指定模式,或者在更改类型时排除:
cleanWs(模式:[[模式:'',类型:'INCLUDE']])
我希望这有帮助。