我写了一个Jenkins管道来从JFrog下载artifcat。我有Jenkins的Artifactory插件,所以我使用rtdownload。下面是rtdownload部分
rtDownload (
serverId: 'pe-jfrog',
spec: '''{
"files": [
{
"pattern": "my-local-repo-dev/test-${buildVersion}.tar"
}
]
}''',
buildName: 'my-test-build',
buildNumber: "${env.buildVersion}"
)
我使用choice参数获取buildversion。有了这个我就可以下载了。
现在我的要求是如何将值传递给pattern
我将变量标记为def jfrogrepo = "my-local-repo/test-${buildVersion}.tar"
我试着把这个变量叫做
- “pattern”:“${jfrogrepo}”
- “pattern”:jfrogrepo
但是在回显变量时,我得到了正确的输出。
那么,是否有一种方法可以将变量传递给模式,或者是否有其他方法可以通过使用artifacory插件下载工件。
2条答案
按热度按时间0x6upsns1#
单引号和双引号在groovy中有区别
我喜欢这个页面
https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4
在快速
单引号中的变量将不会被插值/求值。${}这将不起作用
双引号中的变量${}计算为实际值
FYI
env.
它的jenkins管道的全局变量在sh脚本中被视为环境变量,而jenkinsfile是currentbuild对象的一部分pipeline中的参数用作
${params.VARIABLE}
参见此bweufnob2#
为什么不使用JFrog的CLI for Jenkins?你可以使用Jfrog plugin来实现你的目的,之后你可以在JFrog artifactory中添加JFrog CLI作为工具,然后你可以在Jenkinsfile和pipeline中使用这个命令: