访问 Active Choice 参数脚本中的 JOB_BASE_NAME 或 JOB_NAME 变量

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

需要在活动选择参数脚本内访问 JOB_BASE_NAMEJOB_NAME。使用

jobBaseName
主动选择参数应该动态处理并呈现输入的下拉列表。根据 active-choices-plugin 文档,应该可以访问 jenkinsBuildjenkinsProject 对象。 Input() 不适用,因为不能允许用户输入输入,而是选择所提供的内容。如何读取脚本中的 JOB_NAMEJOB_BASE_NAME ?提前感谢任何帮助。

下面是 Jenkinsfile 示例。

pipeline {
    agent {
        label "slave-2"
    }

    parameters {
        activeChoice choiceType: 'PT_SINGLE_SELECT', description: 'Some Description', filterLength: 1, filterable: false, name: 'PARAM_NAME', script: [ 
            classpath: [], sandbox: true, script: '''
                try {
                    def jobBaseName = env.JOB_BASE_NAME
                    
                    // Do something with jobBaseName and return result
                } catch(e) {return [e.toString()] } 

                /* try {
                    def jobBaseName = jenkinsProject.getDisplayName().split('/')?.first() 

                    // Do something with jobBaseName and return result
                } catch(e) {return [e.toString()] } */ 
            ''' 
        ] 
    } 
}

尝试了示例 Jenkinsfile 中指定的两种方法,但没有成功。注释掉了第二种方法,但仅供参考。如果

jobBaseName
是硬编码的,则主动选择参数将按预期工作,因此其余功能不会出现问题。但这不是一个可行的方法。添加了 try-catch 异常以帮助排除故障。由于我是groovy的初学者,所以请指出任何错误。

谢谢!

jenkins groovy jenkins-pipeline jenkins-plugins jenkins-groovy
1个回答
0
投票

这是插件中长期存在的错误 - https://issues.jenkins.io/browse/JENKINS-69940。 欢迎给票点赞。

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