2017-02-22 13 views
1

ジェンキンス版として構築示し= 2.19 ジェンキンスマルチブランチパイプラインのプラグインのバージョン。ここでジェンキンスパイプラインの条件段階は成功しますが、ジェンキンスは失敗し

は私のJenkinsfileの簡潔版のために変更されます。

node { 
    stage('Checkout') { 
     checkout scm 
    } 

    stage('Clean Verify') { 
     sh 'mvn clean verify' 
    } 

    if (env.BRANCH_NAME == "develop") { 
     stage('Docker') { 
      sh 'mvn docker:build -DpushImage' 
     } 
    } 
} 

私はマルチブランチパイプラインプラグインを使用しています。

すべてのブランチを検出してビルドすることに成功しました。

私が持っている問題は、すべてのステージでは「成功」と表示されても、すべてのレポートが失敗したということです。

実行したい2つのステージを実行して成功させた機能ブランチを示すイメージを添付しましたが、ビルドが実際に失敗したと報告されていることがわかります。

Jenkins failed build

私は同様にブランチを開発するための正確な同じ結果を得る - それは成功しドッカー段階を実行しますが、ビルドレポートに失敗しました。

私の予想は、各ブランチが成功したと報告し、そのブランチのすべてが成功したということです。ここで

EDIT 1

は、ビルドログの終わりだ

[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 30.459 s 
[INFO] Finished at: 2017-02-21T15:13:02+11:00 
[INFO] Final Memory: 84M/769M 
[INFO] ------------------------------------------------------------------------ 
[Pipeline] } 
[Pipeline] // stage 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] sh 
Required context class hudson.FilePath is missing 
Perhaps you forgot to surround the code with a step that provides this, such as: node 
[Pipeline] End of Pipeline 
org.jenkinsci.plugins.workflow.steps.MissingContextVariableException: Required context class hudson.FilePath is missing 
    at org.jenkinsci.plugins.workflow.steps.StepDescriptor.checkContextAvailability(StepDescriptor.java:253) 
at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:179) 
at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126) 
at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108) 
at groovy.lang.GroovyObject$invokeMethod.call(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) 
at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) 
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115) 
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:103) 
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) 
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 
at WorkflowScript.run(WorkflowScript:93) 
at ___cps.transform___(Native Method) 
at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57) 
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109) 
at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82) 
at sun.reflect.GeneratedMethodAccessor501.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) 
at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21) 
at com.cloudbees.groovy.cps.Next.step(Next.java:58) 
at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30) 
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) 
at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30) 
at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:163) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:328) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$100(CpsThreadGroup.java:80) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:240) 
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:228) 
at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:63) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) 
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
Finished: FAILURE 
(私はすべてのプライベート情報を取り出すが、必要であれば、私に知らせたくなかったので、これは十分です願っています)
+0

ビルドログの内容を表示できますか? –

答えて

5

ログファイルを詳しく見てみると、問題を追跡するのに役立ちました。

ビルドステージをクリックしてログを表示することが私を投げたことは注目に値する - これは私がやっていたことです。

def branch = readFile('branch').trim() 
if (branch == master) { 
    ... 
} 

問題があることだった:私はが展開するためのステートメントを持っていたノード{}セクションの下に

Required context class hudson.FilePath is missing 
Perhaps you forgot to surround the code with a step that provides this, such as: node 

:私は実際には完全なコンソールログ出力に行ったとき私は約エラーを見ましたreadFileステートメントはノード外で定義されていました。

答えは、ノード{}セクション内にreadFile文を置くことでした。

+0

これはノードのコンテキスト内で実行しなければならないという事実は非常に重要な詳細です。それが私を驚かせたのです。 – Brandon

1

shコマンドは最後に引用符で閉じられません。

+0

それを指摘してくれてありがとう。これはJenkinsfile自体ではなく私のSO投稿のちょうどタイプミスです – wimnat

関連する問題