首页 > 解决方案 > 如何从詹金斯管道脚本访问共享库中定义的参数列表值?

问题描述

我创建了一个jobParams.groovy包含以下内容的共享库:

List commonParams() {
      //return list of parameters
      def paramsList = [
         string(defaultValue: "Jenkins", description: 'Some Name', name: 'NAME'),
         string(defaultValue: "no_title", description: 'Title', name: 'TITLE')
     ]
     return paramsList
   }

在作业管道脚本中,我将该列表读入另一个列表,但不确定如何从列表中访问所需的值,例如,如何打印 commonParams.NAME ?

我的工作中有这个,作为管道脚本:

@Library('jenkins-library@master') _

List commonParams = jobParams.commonParams()

pipeline {
    agent { label 'my-server' }
    stages {
        stage('params') {
            steps {
                println "commonParams"

            }
        }
}

这打印

[Pipeline] echo
[@string(defaultValue=Jenkins,description=Some Name,name=NAME), @string(defaultValue=no_title,description=Title,name=TITLE)]
[Pipeline] }

下面无法仅打印名称。

println "${commonParams.NAME}"

标签: jenkinsgroovyjenkins-pipelinejenkins-groovy

解决方案


您可以使用静态方法创建类

// file: /src/com/company/jenkins/JobParam.groovy
package com.company.jenkins

class JobParam {
  static List commonParams() {
      //return list of parameters
      def paramsList = [
         string(defaultValue: "Jenkins", description: 'Some Name', name: 'NAME'),
         string(defaultValue: "no_title", description: 'Title', name: 'TITLE')
     ]
     paramsList
   }
}

从管道(或 /var/ 文件夹):

@Library('jenkins-library') _

import com.company.jenkins.JobParam

List commonParams = JobParam.commonParams()

// your code

推荐阅读