如何使用Jenkins中的filespecs动态创建文件夹并在Jfrog artifactory中上传工件?

时间:2017-07-10 10:53:24

标签: jenkins jenkins-plugins artifactory devops

我在jenkins中有一个构建工作,它从github为任何分支构建项目。将在构建作业工作区中创建包,版本为xxxx-yyyyy-2.15.0-SNAPSHOT.zip

我的下一个神器推送作业的文件规范如下:

{ 
 "files": [
       {
           "pattern": "/var/lib/jenkins/workspace/Jobname/target/*/xxxx-yyyyy*.zip",
           "target": "libs-snapshot-local/xxxx-yyyyy/",
           "recursive": "false"
       }
    ]
}

上面的filespec识别模式并在libs-snapshot-local/xxxx-yyyyy/中上传zip。但我需要上传文件,其中包含使用zip文件xxxx-yyyyy-2.15.0-SNAPSHOT.zip上提供的版本名创建的文件夹。

有人可以帮我创建一个具有版本名称的动态文件夹吗?关于如何在filespec中指定目标路径的任何想法?

1 个答案:

答案 0 :(得分:6)

文件规范可以使用placeholders来创建更灵活的路径 例如,在您的情况下:

{ 
 "files": [
       {
           "pattern": "/var/lib/jenkins/workspace/Jobname/target/*/(xxxx-yyyyy*).zip",
           "target": "libs-snapshot-local/{1}/",
           "recursive": "false"
       }
    ]
}

请注意模式中的括号和目标中使用的占位符标记{1}。