2017-12-20 102 views
1

Jenkinsパイプラインのビルド番号をジョブに渡すにはどうすればよいですか。 私は中のジョブを構築するパイプラインを持って、次のorder-ジョブ内のJenkinsパイプラインのアクセス環境変数

- > B - > C - > D

私は仕事cにパイプライン自体のビルド番号を渡す必要があります。 このジョブは、前手順の間にシェルスクリプトで渡されたパラメータのビルド番号を使用します。

私のパイプラインには、環境変数BUILD_NUMBERがあります。

ジョブCの内部でPipelineの環境変数にアクセスする方法はありますか?私は

を試してみましたが、何

withEnvを使用して環境変数を無効にしますが、動作しません。私はthis-

withEnv(['SERVER_BUILD_NUMBER=$env.BUILD_NUMBER']) { 
    build job: 'app-server-perf', parameters: [string(name: 'appServer_commit_id', value: appServer_commit_id)] 
    } 

をやってし、C follows-

${SERVER_BUILD_NUMBER} 

としての仕事の私の前のステップのシェルスクリプトにアクセスしています。 "StringParameter" param2をジョブcに渡します。このジョブは、2つのパラメータ、つまり文字列値param1とパイプラインBUILD_NUMBER param2の文字列値を受け取りました。私は私がパイプラインでオプションThe project is parameterizedをチェックして

java.lang.IllegalArgumentException: Could not instantiate {job=Shared Types, parameters=[[@string(name=sharedTypes_commit_id,value=develop2.2)], [@string(name=serverPerformance_build_number,value=494)]]} for BuildTriggerStep(job: String, parameters?: ParameterValue{BooleanParameterValue(name: String, value: boolean) | CredentialsParameterValue(name: String, value: String, description: String) | CvsTagsParamValue(name: String, tagName: String) | FileParameterValue(name: String, file: FileItem{}) | GitParameterValue(name: String, value: String) | JiraIssueParameterValue(name: String, value: String) | JiraVersionParameterValue(name: String, version: String) | LabelParameterValue(name: String, label: String, allNodesMatchingLabel: boolean, nodeEligibility: NodeEligibility{AllNodeEligibility() | IgnoreOfflineNodeEligibility() | IgnoreTempOfflineNodeEligibility()}) | ListSubversionTagsParameterValue(name: String, tagsDir: String, tag: String) | NodeParameterValue(name: String, labels: String[], nodeEligibility: NodeEligibility{AllNodeEligibility() | IgnoreOfflineNodeEligibility() | IgnoreTempOfflineNodeEligibility()}) | PromotedBuildParameterValue(name: String, runId: String, description: String) | RunParameterValue(name: String, runId: String, description: String) | StringParameterValue(name: String, value: String) | TextParameterValue(name: String, value: String) | com.michelin.cio.hudson.plugins.passwordparam.PasswordParameterValue~PasswordParameterValue(name: String, value: String, description: String) | hudson.model.PasswordParameterValue~PasswordParameterValue(name: String, value: String, description: String)}[], propagate?: boolean, quietPeriod?: int, wait?: boolean): java.lang.ClassCastException: class org.jenkinsci.plugins.workflow.support.steps.build.BuildTriggerStep.setParameters() expects class hudson.model.ParameterValue but received class java.util.ArrayList 
    at org.jenkinsci.plugins.structs.describable.DescribableModel.instantiate(DescribableModel.java:264) 
    at org.jenkinsci.plugins.workflow.steps.StepDescriptor.newInstance(StepDescriptor.java:201) 
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:177) 
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:124) 
    at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:117) 
    at groovy.lang.GroovyObject$invokeMethod$6.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:155) 
    at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23) 

パラメータ - 渡すの間違った方法によるものであると考えて、次のエラーを取得しています。私のパラメータ渡し構文は -

build job: 'server', parameters: [[string(name: 'param1', value: param1)], [string(name: 'param2', value: '${env.BUILD_NUMBER}')]] 
+0

広告1: https://jenkins.io/doc/pipeline/examples/#jobs-in-parallel

も、このSO質問を参照してください。死んだ道Ad2。あなたはビルドジョブのivocation +宛先ジョブの設定を提供していただけますか?私はその呼び出しが間違っていると思います – tworec

+0

次の[質問](https://stackoverflow.com/questions/45324806/how-to-set-a-variable-inside-jenkins-shell-command)への回答を確認してください。彼らはあなたを助けるかもしれません。 –

答えて

0

Ad1です。デッドエンドです

Ad2これはあなたがしたいことです。ただ、ここで正しく

パラメータを渡すためにしようとすると、2つの文字列のparamsの呼び出しでジョブの例です:How can I trigger another job from a jenkins pipeline (jenkinsfile) with GitHub Org Plugin?

+0

私はジェンキンスとその言葉を初めて熟知しています。ジョブcをビルドするときに、私のパイプラインスクリプトに 'BUILD_NUMBER'環境変数を渡す必要があります。それはいくつかの明確さを与えていますか? – mlsngh

+0

いくつかのコードサンプルを与えてください – tworec

+0

更新された投稿を参照してください。 – mlsngh

関連する問題