使用Jenkins从JFrog下载工件

jtw3ybtb  于 12个月前  发布在  Jenkins
关注(0)|答案(2)|浏览(183)

我写了一个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插件下载工件。

0x6upsns

0x6upsns1#

rtDownload (
  serverId: 'pe-jfrog',
  spec: """{
    "files": [
      {
        "pattern": "my-local-repo-dev/test-${env.buildVersion}.tar"
      }
    ]
  }""",
  buildName: 'my-test-build',
  buildNumber: "${env.buildVersion}"
)

单引号和双引号在groovy中有区别
我喜欢这个页面
https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4
在快速
单引号中的变量将不会被插值/求值。${}这将不起作用
双引号中的变量${}计算为实际值
FYI
env.它的jenkins管道的全局变量在sh脚本中被视为环境变量,而jenkinsfile是currentbuild对象的一部分
pipeline中的参数用作${params.VARIABLE}参见此

bweufnob

bweufnob2#

为什么不使用JFrog的CLI for Jenkins?你可以使用Jfrog plugin来实现你的目的,之后你可以在JFrog artifactory中添加JFrog CLI作为工具,然后你可以在Jenkinsfile和pipeline中使用这个命令:

jf "rt dl my-local-repo/cool-froggy.zip"

相关问题