如何在 Jenkinsfile 中的阶段调用中传递参数

问题描述

实际上我的 Jenkinsfile 是这样的:

@Library('my-libs') _
myPipeline{
                my_build_stage(project: 'projectvalue',tag: '1.0' )
                my_deploy_stage()
                
                
}

我正在尝试将这两个变量(项目和标签)传递给我的 build_stage.groovy,但它不起作用。

能够在 my_build_stage.groovy 中使用 $params.project 或 $params.tag 的正确语法是什么?

解决方法

请看下面传递参数的代码。 在您的 Jenkinsfile 中写入以下代码:

// Global variable is used to get data from groovy file(shared library file)
def mylibrary
def PROJECT_VALUE= "projectvalue"
def TAG = 1
pipeline{
agent{} 
stages{
       stage('Build') {   
            steps {
              script {
                        // Load Shared library Groovy file mylibs.Give your path of mylibs file which will contain all your function definitions
                        mylibrary= load 'C:\\Jenkins\\mylibs'
                        // Call function my_build stage and pass parameters
                        mylibrary.my_build_stage(PROJECT_VALUE,TAG )   
                      }               
                  }
        }
        
        stage('Deploy') {   
            steps {
              script {
                        // Call function my_deploy_stage
                        mylibrary.my_deploy_stage()   
                      }               
                  }
        }
   }
}

 

创建一个名为:mylibs(groovy file)的文件

#!groovy
// Write or add Functions(definations of stages) which will be called from your jenkins file
def my_build_stage(PROJECT_VALUE,TAG_VALUE)
 {
    echo "${PROJECT_VALUE} : ${TAG_VALUE}"
 }

def my_deploy_stage()
 {
    echo "In deploy stage"
 }
return this

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...