首页 > 解决方案 > Jenkins buildInfo 对象没有收到工件

问题描述

我一直在尝试使用 Jenkins Artifactory 插件将工件上传到 Artifactory,但在创建工件时遇到了问题(奇怪的是我的管道结束了,所以我必须触发一个静默错误) .

这是代码(我在下面提供了有关我认为出了什么问题的更多详细信息):

def server = Artifactory.server 'rc-artifact'

def uploadSpec =
    """{
        "files": [
            {
                "pattern": "${unencryptedZipName}",
                "target": "builds/SedTuningGui/${env.BUILD_NUMBER}/${unencryptedZipName}",
                "props": "type=zip"
             }
         ]
     }"""

def buildInfo = server.upload spec: unencryptedUploadSpec
print buildInfo.getProperties().toString()

和控制台输出(我很乐意展示的部分):

[..., deployableArtifacts:[], artifacts:[], ...]

如您所见,'artifacts' 和 'deployable artifacts' 数组都是空的,这意味着服务器没有收到我构建的 zip 文件。我知道 zip 文件存在,因为我已经成功 robocopied它。

所有这一切让我相信def buildInfo = server.upload...行不起作用,因为构建的 zip 文件存在,但不包含在 buildInfo 对象中。

这是我第一次使用 Jenkins 管道,我想我已经接近解决这个问题了,我只需要一点方向。

标签: jenkins-pipelineartifactory

解决方案


您定义的文件规范是uploadSpec,但在以下行中def buildInfo = server.upload spec: unencryptedUploadSpec您使用unencryptedUploadSpec. 尝试
def buildInfo = server.upload spec: uploadSpec


推荐阅读