在Jenkinsfile中管理条件语句并访问Jenkins环境变量

我正在尝试为我的CI / CD管道Jenkinsfile部署在kubernetes中添加条件语句。我只是在部署阶段添加了一个If-Else条件,并访问了创建的Jenkins环境变量。但是我收到以下错误,

java.lang.NoSuchMethodError: No such DSL method '$' found among steps 

我的Jenkinsfile内容包含以下内容,

agent any
environment 
    { 
        NAME = "myapp"
        VERSION = "${env.BUILD_ID}"
    }
.
.
.// Scripts for project and image builds
.
.
stage ('Test Deployment'){
steps{
    script{
        if (${VERSION} == 1){
                sh 'kubectl apply -f deployment/testdeployment.yaml'
                sh 'kubectl apply -f deployment/testservice.yaml'
            }
        else{

    sh 'kubectl set image deployment/test-kube-deployment test-kube-deployment-container=spacestudymilletech010/spacestudykubernetes:${VERSION} --record'
    sh 'kubectl rollout restart deployment/test-kube-deployment'

            }
        }
    }
} 

在这里,我正在使用符号VERSION作为变量${VERSION}访问内部版本号,用于构建映像并检查部署状态。在映像构建阶段,它可以正常工作。从那时起,当我添加用于定义条件语句的脚本块时,我得到了这样的错误。请引导我解决这个问题。

谢谢

wangxd925 回答:在Jenkinsfile中管理条件语句并访问Jenkins环境变量

您应该使用双引号在脚本块中使用环境变量。

尝试if ("${VERSION}" == "1"){,应该可以。

本文链接:https://www.f2er.com/3139415.html

大家都在问