[英]How can I define additional parameters in jenkinsfile who inherit from a pipeline shared lib?
[英]How can I define additional parameters in a declarative jenkins pipeline who inherit from a pipeline shared library?
我想看看这样的事情是否可能: 如何在从管道共享库继承的 jenkinsfile 中定义其他参数?
但是在声明性管道中,我尝试了与上述帖子类似的解决方案,但没有运气。
我需要能够声明一个构建参数的共享库,然后我可以在多个声明的管道中使用它。
像这样的东西:
pipeline {
agent {
label 'slave'
}
parameters { // Build parameters
string(defaultValue: 'test', description: 'SCM branch', name: 'UUT_BRANCH', trim: false)
# DEFININED IN SHARED LIBRARY
}
我想知道是否有人可以提供任何意见? 非常感谢。
我从未使用过从共享库继承的参数。 但这就是它与库中声明的函数的工作方式:
在库里面有一个包含函数的 groovy 文件:
def call(String name = 'human') {
echo "Hello, ${name}!"
}
在 jenkins 中将该库配置为共享库后,您可以像这样在声明性管道中使用该函数:
stage('useSharedLib'){
steps {
sayHello 'Stranger'
}
}
也许这会帮助你实现环境变量
这就是我如何解决我对库中定义的共享参数的需求,同时各个作业定义自己的自定义参数。 这是我的Jenkinsfile
样子:
#!groovy
@Library('my-library@master') _
properties([
parameters([
string(name: 'PARAM_A', defaultValue: '1', description: 'Aaa'),
string(name: 'PARAM_B', defaultValue: '2', description: 'Bbb'),
string(name: 'PARAM_C', defaultValue: '3', description: 'Ccc'),
] + runTest.commonJobParams())
])
runTest(
params: params,
)
这就是我的库中vars/runTest.groovy
样子:
def commonJobParams() {
return [
string(
name: 'GOLDEN',
defaultValue: '999',
description: 'Description of param from library',
),
]
}
def call(Map config) {
pipeline {
agent {
...
}
stages {
stage('Test') {
steps {
echo "Hello ${PARAM_A}"
echo "Hello ${PARAM_B}"
echo "Hello ${PARAM_C}"
echo "Hello ${GOLDEN}"
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.