2017-04-25 101 views
1

我无法使用jenkins管道插件从我的artifactory服务器下载构建到我的windows jenkins从属节点。这一切出现会好起来的,但它并没有真正下载文件。难道我做错了什么?Jenkins管道+ Artifactory下载不下载

我看不到任何请求在我的Artifactory系统日志中下载,只是为了上传。

(2017-04-25 18:39:48,096 [http-nio-8081-exec-2] [INFO](oaeUploadServiceImpl:516) - 部署到'BUILDS:windows/5840/build.tar.gz “内容长度:278600525)

我一直在使用这个作为参考:https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=99910084


下面是从我詹金斯管道输出:

For pattern: build.tar.gz 1 artifacts were found. 
Deploying artifact: http://myartifactory:8081/artifactory/BUILDS/windows/5840/build.tar.gz 
[Pipeline] } 
[Pipeline] // stage 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] timeout 
Timeout set to expire in 3 min 0 sec 
[Pipeline] { 
[Pipeline] node 
Running on test-windows-0 in C:/jenkinsroot/workspace/test-windows 
[Pipeline] { 
[Pipeline] stage 
[Pipeline] { (Test) 
[Pipeline] echo 
{ 
     "files": [ 
       { 
        "pattern": "BUILDS/windows/5840/build.tar.gz", 
        "target": "download/", 
       } 
      ] 
     } 
[Pipeline] echo 
Artifactory Download: BUILDS/windows/5840/build.tar.gz -> download/ 

的文件存在于artifactory的。


这里是我的詹金斯代码:

@NonCPS 
def downloadArtifactory(String localPath, String repository, String remotePath) { 

    def downloadSpec = """{ 
     "files": [ 
       { 
        "pattern": "${repository}/${remotePath}", 
        "target": "${localPath}", 
       } 
      ] 
     }""" 

    echo "${downloadSpec}" 

    echo "Artifactory Download: ${repository}/${remotePath} -> ${localPath}" 

    def server = Artifactory.server("MYARTIFACTORYSERVER") 
    def buildInfo = server.download spec: downloadSpec 
    return buildInfo 
} 

与调用:

downloadArtifactory("download/", "BUILDS", "windows/5840/build.tar.gz") 
+0

从你的echo语句看起来你的def downloadSpec正在创建一个名为downloadSpec的空变量。也许在spec语句开头的三重引号会让你感到困惑,你只会得到前两个引号,并将它分配给一个空字符串。 – Tuffwer

+0

@Tuffwer:虽然它似乎在打印downloadSpec变量,不是吗?我使用相同的格式上传。我很困惑:) – Jordan

+0

你是对的我在那里读了额外的回声。在浏览你提到的页面后,我想知道是否需要以不同的方式调用下载。在页面上执行下载的例子是'server.download(downloadSpec)'。 – Tuffwer

回答

4

卸下NonCPS注释应该解决的问题。
正如您在this Jenkins issue中看到的,Artifactory Jenkins插件不支持NonCPS。

+0

谢谢,明白了! – Jordan