我需要你的幫助來解決這個難題。在我的作業中,我們有一個 Jenkins 管道來構建我們的一個專案,這是一個用于我們許多專案的庫。
直到上周,這條管道都按預期作業。我進行了一些更改并更新了一些依賴項,現在 Jenkins 上的構建不起作用。為了在 Jenkins 上運行我們的測驗,我們已經創建了這個 Docker 鏡像。帶有 Java 8、Gradle 6.9.2 和一些證書的映像,用于在 Active Directory 上連接。問題出現在執行 JUnit 測驗的階段。
我們使用的鏡像名稱是gradle692-certs-win-ad:gradle-6.9.2-jdk8
錯誤:
ERROR: Name must follow the pattern '^[a-zA-Z0-9] ((\.|_|__|- )[a-zA-Z0-9] )*$'
18:59:41 at hudson.util.FormValidation._errorWithMarkup(FormValidation.java:266)
18:59:41 at hudson.util.FormValidation.errorWithMarkup(FormValidation.java:252)
18:59:41 at hudson.util.FormValidation.error(FormValidation.java:143)
18:59:41 at hudson.util.FormValidation.error(FormValidation.java:168)
18:59:41 at org.jenkinsci.plugins.docker.commons.credentials.ImageNameValidator.validateName(ImageNameValidator.java:289)
18:59:41 at org.jenkinsci.plugins.docker.commons.credentials.ImageNameValidator.validateUserAndRepo(ImageNameValidator.java:115)
18:59:41 at org.jenkinsci.plugins.docker.commons.credentials.DockerRegistryEndpoint.imageName(DockerRegistryEndpoint.java:317)
18:59:41 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
18:59:41 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
18:59:41 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
18:59:41 at java.base/java.lang.reflect.Method.invoke(Unknown Source)
18:59:41 at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
18:59:41 at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
18:59:41 at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
18:59:41 at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
18:59:41 at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:47)
18:59:41 at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
18:59:41 at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
18:59:41 at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
18:59:41 at org.jenkinsci.plugins.docker.workflow.Docker$Image.toQualifiedImageName(Docker.groovy:106)
18:59:41 at org.jenkinsci.plugins.docker.workflow.Docker$Image.imageName(Docker.groovy:110)
18:59:41 at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:115)
18:59:41 at org.jenkinsci.plugins.docker.workflow.Docker.node(Docker.groovy:66)
18:59:41 at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:114)
18:59:41 at org.jenkinsci.plugins.docker.workflow.declarative.DockerPipelineScript.runImage(DockerPipelineScript.groovy:57)
18:59:41 at org.jenkinsci.plugins.docker.workflow.declarative.AbstractDockerPipelineScript.configureRegistry(AbstractDockerPipelineScript.groovy:73)
18:59:41 at org.jenkinsci.plugins.docker.workflow.declarative.AbstractDockerPipelineScript.run(AbstractDockerPipelineScript.groovy:43)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inDeclarativeAgent(ModelInterpreter.groovy:594)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:272)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.stageInput(ModelInterpreter.groovy:356)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.stageInput(ModelInterpreter.groovy:355)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:261)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inWrappers(ModelInterpreter.groovy:618)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.inWrappers(ModelInterpreter.groovy:617)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:259)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withEnvBlock(ModelInterpreter.groovy:443)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.withEnvBlock(ModelInterpreter.groovy:442)
18:59:41 at org.jenkinsci.plugins.pipeline.modeldefinition.ModelInterpreter.evaluateStage(ModelInterpreter.groovy:254)
18:59:41 at ___cps.transform___(Native Method)
18:59:41 at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:86)
18:59:41 at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:113)
18:59:41 at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
18:59:41 at jdk.internal.reflect.GeneratedMethodAccessor354.invoke(Unknown Source)
18:59:41 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
18:59:41 at java.base/java.lang.reflect.Method.invoke(Unknown Source)
18:59:41 at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
18:59:41 at com.cloudbees.groovy.cps.impl.LocalVariableBlock$LocalVariable.get(LocalVariableBlock.java:39)
18:59:41 at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
18:59:41 at com.cloudbees.groovy.cps.impl.LocalVariableBlock.evalLValue(LocalVariableBlock.java:28)
18:59:41 at com.cloudbees.groovy.cps.LValueBlock$BlockImpl.eval(LValueBlock.java:55)
18:59:41 at com.cloudbees.groovy.cps.LValueBlock.eval(LValueBlock.java:16)
18:59:41 at com.cloudbees.groovy.cps.Next.step(Next.java:83)
18:59:41 at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
18:59:41 at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
18:59:41 at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:129)
18:59:41 at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:268)
18:59:41 at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
18:59:41 at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
18:59:41 at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
18:59:41 at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:185)
18:59:41 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:403)
18:59:41 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:97)
18:59:41 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:315)
18:59:41 at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:279)
18:59:41 at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
18:59:41 at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
18:59:41 at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
18:59:41 at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
18:59:41 at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
18:59:41 at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
18:59:41 at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
18:59:41 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
18:59:41 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
18:59:41 at java.base/java.lang.Thread.run(Unknown Source)
18:59:41 Finished: FAILURE
PS:我在本地機器上使用相同的基礎 docker 映像運行 gradle 構建。一切順利。
uj5u.com熱心網友回復:
又是我
我在 Jenkins 論壇上找到了一張票,它幫助我解決了這個問題。
只是為了解釋我做了什么。在我們的 Jenkinsfile 中,我們有一個名為NOME_BASE_IMAGEM的環境,我們在舞臺上使用它來執行 Junit 測驗并使用 sonarQube 進行分析
NOME_BASE_IMAGEM = "registry.rancher.tcu.gov.br/public-images/gradle/gradle6-certs-win-ad:gradle-6.8.3-jdk8
stage('Analisa com sonarqube (inclui testes JUnit)') {
agent {
docker {
image '${NOME_BASE_IMAGEM}'
reuseNode true
}
}
steps {
sh 'gradle sonarqube -PmavenUser=usr_repo_maven -PmavenPassword=mvndeploy'
}
}
我猜是什么導致了 env 值的雙引號。我已將舞臺上的呼叫更改為單引號中影像的完整路徑。
stage('Analisa com sonarqube (inclui testes JUnit)') {
agent {
docker {
image 'registry.rancher.tcu.gov.br/public-images/gradle/gradle6-certs-win-ad:gradle-6.8.3-jdk8'
reuseNode true
}
}
steps {
sh 'gradle sonarqube -PmavenUser=usr_repo_maven -PmavenPassword=mvndeploy'
}
}
Ps2:我什至不善于表達想法,對不起,從現在開始。:D
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451974.html
標籤:詹金斯
