我有一种情况,我已经为 Jenkins 参数创建了如下所示的 html 表,如果它不等于当前计数或者它为空/零,我想获取每个组件的 Desired Count 列中的值。
例如,如果我将 A1 的 Desired Count 更改为 2,那么我的 Jenkins 参数应该在我构建作业时返回 A1=2,这样我就可以更新它以在我的 Jenkins 管道中继续执行进一步的步骤。有人可以帮忙
我的桌子是这样的
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
text-align: center;
width: 40%;
border-collapse: collapse;
}
</style>
</head>
<table>
<tr>
<th>COMPONENT</th>
<th>CURRENT SCALE</th>
<th>DESIRED SCALE</th>
</tr>
<tr>
<td>A1</td>
<td>-1</td>
<td><input type='number' step='1' min='0' max='5'/></td>
</tr>
<tr>
<td>B1</td>
<td>1</td>
<td><input type='number' step='1' min='0' max='5'/></td>
</tr>
<tr>
<td>C1</td>
<td>-1</td>
<td><input type='number' step='1' min='0' max='5'/></td>
</tr>
</table>
</html>
检查以下 Groovy 代码。
def text = '''
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
text-align: center;
width: 40%;
border-collapse: collapse;
}
</style>
</head>
<table>
<tr>
<th>COMPONENT</th>
<th>CURRENT SCALE</th>
<th>DESIRED SCALE</th>
</tr>
<tr>
<td>A1</td>
<td>-1</td>
<td><input type='number' step='1' min='0' max='5'>1234321</input></td>
</tr>
<tr>
<td>B1</td>
<td>1</td>
<td><input type='number' step='1' min='0' max='5'>555</input></td>
</tr>
<tr>
<td>C1</td>
<td>-1</td>
<td><input type='number' step='1' min='0' max='5'/></td>
</tr>
</table>
</html>
'''
def html = new XmlParser().parseText(text)
println html.table
def values = [:]
html.table.tr.each{ row ->
if(row['td']) {
if(row['td'][2].input.text()) {
values[row['td'][0].text()] = row['td'][2].input.text()
}
}
}
println values
输出
[A1:1234321, B1:555]
更新
假设您的主动选择参数名称是
versions
,您可以执行以下操作来获取参数。您可能需要回复输入的顺序。
pipeline {
agent any
stages {
stage('Hello') {
steps {
script {
def versionParams = params.versions.split(',')
A1=versionParams[0]
B1=versionParams[1]
C1=versionParams[2]
println "A1: " + A1
println "B1: " + B1
println "C1: " + C1
}
}
}
}
}
此外,您的 HTML 内容输入应该像下面这样调整。
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
text-align: center;
width: 40%;
border-collapse: collapse;
}
</style>
</head>
<table>
<tr>
<th>COMPONENT</th>
<th>CURRENT SCALE</th>
<th>DESIRED SCALE</th>
</tr>
<tr>
<td>A1</td>
<td>-1</td>
<td><input class="setting-input" name='value' type='number' step='1' min='0' max='5'/></td>
</tr>
<tr>
<td>B1</td>
<td>1</td>
<td><input class="setting-input" name='value' type='number' step='1' min='0' max='5'/></input></td>
</tr>
<tr>
<td>C1</td>
<td>-1</td>
<td><input class="setting-input" name='value' type='number' step='1' min='0' max='5'/></td>
</tr>
</table>
</html>