jenkins - 访问主动选择反应参考参数内的全局映射变量
问题描述
我正在尝试在 jenkins 声明性管道中设置全局映射变量。我正在尝试在 Active Choice Reactive Reference 参数中访问它。我尝试了很多方法来实现这一点,但没有任何效果。
下面是我的示例管道。
def sampleMap= [
'students' : ['12312312'],
'teachers' : ['145436436']
]
pipeline {
agent any
stages {
stage('set params') {
steps{
script {
properties([
parameters([
[
$class: 'CascadeChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
description: '',
filterLength: 1,
filterable: false,
name: 'Type',
randomName: 'choice-parameter-1325654724334254',
referencedParameters: '',
script: [
$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: true,
script: ''
], script: [
classpath: [],
sandbox: true,
script: '''
def choices = []
choices.add('students')
choices.add('teachers')
return choices'''
]
]
],
[
$class: 'DynamicReferenceParameter',
choiceType: 'ET_FORMATTED_HTML',
description: '',
name: 'value',
randomName: 'choice-parameter-14347325234254',
referencedParameters: 'Type',
script: [
$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: true,
script: ""
],
script: [
classpath: [],
sandbox: true,
script: '''
def result= ${sampleMap.get(Type)}
return """<input name=\"value\" value=\"${result}\" class=\"setting-input\" type=\"text\">"""
'''
]
],
omitValueField: true
]
])
])
}
}
}
}
根据上面的脚本,我有一个全局 Map 变量,其中包含学生列表和教师列表。我有两个名为 Type 和 value 的构建参数。类型是一个下拉列表,其中包含 'students' 和 'teachers' 值。根据下拉选择,我想引用全局映射变量并在另一个构建参数中访问它的相应值。
似乎主动选择参数无法访问全局变量。或者这是一个语法问题?
任何人都可以帮忙吗?
谢谢!
解决方案
您应该将整个地图传递给脚本并调用它:
[$class: 'CascadeChoiceParameter',
choiceType: 'PT_SINGLE_SELECT',
filterLength: 1,
filterable: false,
name: 'value',
referencedParameters: 'Type',
script: [$class: 'GroovyScript',
fallbackScript: [
classpath: [],
sandbox: true,
script: 'return ["ERROR"]'
],
script: [
classpath: [],
sandbox: true,
script: """
def sampleMap = ${sampleMap.inspect()}
return sampleMap.get(Type)
""".stripIndent()
]
]
]
推荐阅读
- javascript - Firestore 是否缓存查询结果?
- c++ - 具有 unordered_map 的相互依赖类型
- python - 如何在 python networkX 中添加具有字符串相似度分数的边并找到图的中心
- python - 如何在 Graphene-SQLAlchemy 中的子关系上使用字段参数进行查询
- java - 循环异常处理
- python-3.x - 使用 Python 下载文件 - “未知 url 类型”
- typescript - 如何在每个文件的基础上选择加入 TypeScript 的 strictPropertyInitialization?
- python - 使用 BeautifulSoup/Python 从 html 文件中提取文本
- vba - 如果另一列中的值不等于零,则返回列下的值
- android - 使用 adb 从手机摄像头传输照片的脚本