问题描述
实际上我的 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