如何使用带有通配符的curl命令将工件部署到jfrog artifactory

时间:2018-05-28 02:52:12

标签: jenkins jenkins-pipeline artifactory jfrog-cli

如何使用带有通配符的curl命令将工件部署到Jfrog Artifactory仓库。
    我正在尝试使用Jenkins管道脚本中的以下内容,并收到错误。

    stage 'Deploy Aritfacts to Artifactory'

    withCredentials([usernameColonPassword(credentialsId: '<enter credentials ID>', variable: 'password')])     {
            sh "    curl -k -u $password -T ${WORKSPACE}/soureCode/integration/dan-0.0.1-SNAPSHOT.zip "https://<enter artifactory URL>/maven-prereleases-local/com/dan/     "

当你运行一个构建时,它实际上会生成一个工件dan-0.0.1-SNAPSHOT.zip,我正在尝试使用通配符作为工件版本,而不是使用硬编码版本。但是出现了如下所示的错误

 curl: Can't open '/bld/workspace/demoPipeline/soureCode/integration/dan-*-SNAPSHOT.zip'!
    curl: try 'curl --help' or 'curl --manual' for more information
Finished: FAILURE                                        

2 个答案:

答案 0 :(得分:1)

您是否可以使用Jenkins Artifactory插件?这将允许您访问jfrog cli,允许使用uploadSpec的

def server = Artifactory.server 'artifactory'
def uploadSpec = """{
                      "files": [
                          {
                           "pattern": "${WORKSPACE}/soureCode/integration/dan-*-SNAPSHOT.zip",
                           "target": "maven-prereleases-local/com/dan/"
                          }
                      ]
                    }"""
server.upload(uploadSpec)

答案 1 :(得分:0)

不幸的是,curl不支持通配符'*',所以你可以做的是搜索文件的文件/位置,然后将它传递给你的curl命令

喜欢这样

curl -k -u $password -T $localFilePath $targetFolder/$fileName