Jenkins-主动选择反应参考参数

问题描述 投票:0回答:1

问候!我是Jenkins和Groovy的新手。我有一个下面的用例,其中我无法打印用户输入值并将其传递给Shell脚本。有人可以向我分享您有关如何获取存储在变量中的输入值并在execute shell中打印它们的输入。

感谢您的帮助!

Here is the script
============================================================================
Active Choices Parameter:
      Name   DB_DUMP_TYPE
      Script    (.) Groovy Script
                     
                     Script
                          Groovy Script     return[
                                                       'EXPDB'
                                                       'IMPDB'                                                     

                                  Fallback Script
                                       Groovy Script    return["error"]
                           
                     Choice Type [Single Select]


Active Choices Reactive Reference Parameter
               Name   (leave blank, dont give any thing here)
            Script (.) Groovy script 

if(DB_DUMP_TYPE.equals("IMPDB")){
def FullHTML = """
<label style="left: 22% position: absolute;">DB_DUMP_TYPE</label>
<input name='DB_DUMP_TYPE' type='text'> </input> <br>
<label style="left: 22% position: absolute;">DB_DUMP</label>
<input name='DB_DUMP' type='text'> </input> 
"""
return FullHTML    }

if(DB_DUMP_TYPE.equals("EXPDB")){
def FullHTML = """
<label style="left: 22% position: absolute;">DB_WALLET</label>
<input name='DB_WALLET' type='text'> </input> <br>
<label style="left: 22% position: absolute;">DW_SCHEMA</label>
<input name='DW_SCHEMA' type='text'> </input> 
"""
return FullHTML    }

Fallback Script
   Groovy Script return["script error"]


Referenced Parameters DB_DUMP_TYPE
jenkins jenkins-pipeline jenkins-groovy jenkins-cli jenkins-job-dsl
1个回答
0
投票

我尝试了几种解决此问题的方法。

首先,您应将输入的“名称”标签设置为“值”,以将其作为参数值传递。

if(DB_DUMP_TYPE.equals("IMPDB")) {
  def FullHTML = """
    <label for="DB_DUMP_TYPE" style="left: 22% position: absolute;">DB_DUMP_TYPE</label>
      <input id="DB_DUMP_TYPE" type='text' name="value"><br>
    <label for="DB_DUMP" style="left: 22% position: absolute;">DB_DUMP</label>
      <input id="DB_DUMP" type='text' name="value"> 
  """
  return FullHTML
}

if(DB_DUMP_TYPE.equals("EXPDB")) {
  def FullHTML = """
    <label for="DB_WALLET" style="left: 22% position: absolute;">DB_WALLET</label>
      <input id="DB_WALLET" type='text' name="value"><br>
    <label for="DB_SCHEMA" style="left: 22% position: absolute;">DB_SCHEMA</label>
      <input id="DB_SCHEMA" type='text' name="value">
  """
  return FullHTML
}

此脚本应该起作用。但是它将输入值作为CSV字符串传递。(例如-如果您键入DB_WALLET = 'ABC'DB_SCHEMA = 'DEF',它将通过带有空白名称变量的'ABC','DEF'数组传递)

因此您必须设置参数独立地。(因此,在这种情况下,您必须设置4个参考参数)(似乎我们无法使用此插件动态设置参数名称。)


下面是Build with Parameters页面的HTML源代码。script we have written设置为parameter name之后,因此无法动态设置parameter name。(或者,也许还有其他方法可以传递parameter name。)

parameter html code

© www.soinside.com 2019 - 2024. All rights reserved.