我正在尝试使用以下DSL脚本创建Jenkins管道,
pipelineJob('pipeline')
{
logRotator(numToKeep = 100)
parameters {
stringParam("ENV", "dev" , "dev")
}
definition {
cps {
sandbox()
script("""
node {
stage('Pre Build Test') {
sh '''#!/bin/bash
echo "Will deploy to ${params.ENV}" '''
}
}""".stripIndent())
}
}
}
想要在节点阶段shell脚本中访问stringParam
,上面一个${params.ENV}
不起作用,有没有其他方法可以访问stage shell脚本中的字符串参数?
答案 0 :(得分:0)
简单的$ {ENV}应该这样做,而不是$ {params.ENV}
无论如何,您的代码看起来不像是有效的管道。您最好切换到声明性管道,例如:
pipeline
{
parameters
{
string(name: 'ENV', defaultValue: 'dev', description: 'dev')
}
options
{
buildDiscarder(logRotator(numToKeepStr: '100'))
}
agent any
stages
{
stage('Pre Build Test')
{
steps
{
script
{
sh '''
#!/bin/bash
echo "Will deploy to ${ENV}"
'''
}
}
}
}
}