带有 ConanClient 的 Jenkins Artifactory 插件:巨大的 BuildInfo 引用了 ConanClient 返回的无关包
Jenkins Artifactory Plugin with ConanClient: huge BuildInfo refering unrelated packages returned by ConanClient
出于某种原因,ConanClient.run()
方法返回的 BuildInfo
对象包含对许多不相关的柯南包的引用,如 "modules"。看起来这些包也是建立在同一个 Jenkins slave 上的,但当然是在不同的工作中。
这是一个最小的例子,导致巨大的 BuildInfo
被发布到 Artifactory:
def conanUploadClient = Artifactory.newConanClient()
def buildInfoTest = conanUploadClient.run command: "upload ${aliasID} -r ${remoteName}".toString()
artifactoryServer.publishBuildInfo buildInfoTest
所有其他以前的 Conan 命令,如 conan install
都是用另一个 ConanClient 实例执行的,以确保有关不相关包的错误信息不会从这些操作中遗留。
这是一个 "control experiment" 导致 BuildInfo
没有任何关联的柯南包/"modules" 被发布到 Artifactory。
def conanUploadClient = Artifactory.newConanClient()
def buildInfoTest = Artifactory.newBuildInfo()
artifactoryServer.publishBuildInfo buildInfoTest
其他版本的错误信息从何而来?
柯南 1.8.2,Windows10,Jenkins Artifactory 插件 2.16.2
Jenkins 插件似乎读取了整个 $CONAN_USER_HOME/conan_log.log
并将其放入 ConanClient.run()
返回的 BuildInfo
中。我在构建之前删除了文件,现在信息正常了。
出于某种原因,ConanClient.run()
方法返回的 BuildInfo
对象包含对许多不相关的柯南包的引用,如 "modules"。看起来这些包也是建立在同一个 Jenkins slave 上的,但当然是在不同的工作中。
这是一个最小的例子,导致巨大的 BuildInfo
被发布到 Artifactory:
def conanUploadClient = Artifactory.newConanClient()
def buildInfoTest = conanUploadClient.run command: "upload ${aliasID} -r ${remoteName}".toString()
artifactoryServer.publishBuildInfo buildInfoTest
所有其他以前的 Conan 命令,如 conan install
都是用另一个 ConanClient 实例执行的,以确保有关不相关包的错误信息不会从这些操作中遗留。
这是一个 "control experiment" 导致 BuildInfo
没有任何关联的柯南包/"modules" 被发布到 Artifactory。
def conanUploadClient = Artifactory.newConanClient()
def buildInfoTest = Artifactory.newBuildInfo()
artifactoryServer.publishBuildInfo buildInfoTest
其他版本的错误信息从何而来?
柯南 1.8.2,Windows10,Jenkins Artifactory 插件 2.16.2
Jenkins 插件似乎读取了整个 $CONAN_USER_HOME/conan_log.log
并将其放入 ConanClient.run()
返回的 BuildInfo
中。我在构建之前删除了文件,现在信息正常了。