扩展选择参数Groovy脚本在值字段中获取参数名称

时间:2017-11-01 18:24:51

标签: jenkins groovy jenkins-plugins jenkins-pipeline

我有一个groovy脚本,我在扩展选择参数插件中用来从artifactory中获取图像名称。它抓取的图像列表取决于参数的名称。

例如,如果我们有两个参数,一个名为test-repo,另一个名为dev-repo

groovy脚本看起来像这样:

   @Grapes(
   @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1')
)

import groovyx.net.http.RESTClient

// the REPO_NAME below is test-repo or dev-repo depending on the parameter name
def query = 'items.find({**<REPO_NAME>**}).limit(1)'

def artifactoryURL = // the URL for artifactory

def restClient = new RESTClient(artifactoryURL)
restClient.setHeaders(['Authorization': 'Basic ' + "jenkins:password".getBytes('iso-8859-1').encodeBase64()])

def response = restClient.post(
   path: 'artifactory/api/search/aql',
   body: query,
   requestContentType: 'text/plain'
   )

response.getData().results.name

问题是我需要引用很多不同的存储库以及我最终可能使用的不同工件URL。

所以我试图找到一种方法,我可以引用参数名称,以便能够在参数值中使用它。

像这样的东西

def query = 'items.find({ params.key }).limit(1)'

其中params.key是此扩展选择参数部分中参数的名称。

我尝试过使用不同的方法来引用参数名称,但它们似乎无法正常工作。

我觉得我试图通过在开始构建之前使用引用参数名称的参数值来打破第4个墙。

我正在考虑以某种方式试图抓住Jenkins构建的实例并尝试查看参数名称,但任何此类努力都被证明是无用的。我还尝试使用thisit希望groovy会抓取参数的当前实例,这样我就可以引用this.nameit.name,但它们都不起作用。

编辑(点击1,000个观看标记后):

我从来没有找到解决方案。相反,对于每个扩展选择参数,我都硬编码了我想从中获取图像的存储库名称。

0 个答案:

没有答案
相关问题