如何使用带有通配符的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
答案 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