首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkinsfile CPS错误

Jenkinsfile CPS错误
EN

Stack Overflow用户
提问于 2017-05-31 01:51:21
回答 1查看 350关注 0票数 0

下面是我的Jenkinsfile。

构建将正常进行,直到生成错误时结束。

我对脚本化管道还不够熟悉,不知道如何继续?

我的猜测是我错误地使用了docker容器的引用变量?

提到沙盒,有没有可能不允许我调用stop方法?

代码语言:javascript
复制
   node {

   checkout scm

    docker.withRegistry('http:localhost:5000') {



         try {
            stage 'Acquire HBASE Image'
            def hbase = docker.image('hbase-1.1.2').run()
            docker.image('jenkins-java').inside("--link=${hbase.id}:hbase"){




                checkout scm
                stage 'Build'
                sh 'gradle build'

                stage 'Test'
                sh 'gradle test'

                stage 'Publish Test Results'
                junit 'build/test-results/*.xml'

                stage 'Build Jar and Show Deps'
                sh 'gradle dependencies'
                sh 'gradle shadowJar'

                stage 'Integration Test'
                   withEnv(['METRICS_BATCHSIZE=10','METRICS_ZOOKEEPER_QUOROM=hbase:2181']){


                    sh 'java -jar build/libs/$(ls ./build/libs/ | grep .jar) migrate'
                    sh 'gradle integrationTest'

                   }

                stage 'Publish Integration Results'
                junit 'build/test-results/*.xml'
            }

        }
        finally {

            hbase.stop()

        }
}

}

错误是

代码语言:javascript
复制
Could not update commit status, please check if your scan credentials    belong to a member of the organization or a collaborator of the repository and repo:status scope is selected

 groovy.lang.MissingPropertyException: No such property: hbase for class: groovy.lang.Binding
Possible solutions: class
at groovy.lang.Binding.getVariable(Binding.java:63)
at      org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:46)
at org.jenkinsci.plugins.docker.workflow.Docker.withRegistry(jar:file:/var/lib/jenkins/plugins/docker-workflow/WEB-INF/lib/docker-workflow.jar!/org/jenkinsci/plugins/docker/workflow
EN

回答 1

Stack Overflow用户

发布于 2017-05-31 02:29:50

当我开始把这个文件看作是一种编程语言构造时,答案就很清楚了。

解决方案是声明

代码语言:javascript
复制
def hbase = docker.image('hbase-1.1.2').run()

在try/finally块开始之前,这样变量就会被声明,并且在finally块的作用域内。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44268787

复制
相关文章

相似问题

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