首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins脚本管道: Groovy if语句

Jenkins脚本管道: Groovy if语句
EN

Stack Overflow用户
提问于 2021-06-25 17:22:36
回答 1查看 36关注 0票数 1

我似乎无法实际打印变量glooNamespaceExists。我在控制台中看到来自kubectl的响应,但该变量似乎是null -如果名称空间已经存在,我希望跳过整个构建阶段。

代码语言:javascript
复制
    stage('Setup Gloo Ingress Controller') {
      def glooNamespaceExists = sh(script: "kubectl get ns gloo-system -o jsonpath='{.status.phase}'")

      if (glooNamespaceExists != 'Active') {
        sh 'helm repo add gloo https://storage.googleapis.com/solo-public-helm'
        sh 'helm repo update'
        sh 'kubectl create namespace gloo-system'
        sh 'helm install gloo gloo/gloo --namespace gloo-system'
      }
    }

EDIT: run的控制台输出:

代码语言:javascript
复制
[Pipeline] { (Setup Gloo Ingress Controller)
[Pipeline] sh
+ kubectl get ns gloo-system -o jsonpath={.status.phase}
Active
[Pipeline] sh
+ helm repo add gloo https://storage.googleapis.com/solo-public-helm
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-25 17:42:46

请将returnStdout: true添加到脚本命令中,该命令将返回准确的输出。否则,它将返回0的状态代码。请像这样添加returnStdout: true,这样你的命令应该是这样的。

代码语言:javascript
复制
def glooNamespaceExists = sh(script: "kubectl get ns gloo-system -o jsonpath='{.status.phase}'", returnStdout: true)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68128599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档