Jenkinsfile のパイプラインを持つ共有 Jenkins ライブラリがあります。ライブラリは次のように構成されています。
myPipeline.groovyファイル
def call(body) {
def params= [:]
body.resolveStrategy = Closure.DELEGATE_FIRST
body.delegate = params
body()
pipeline {
// My entire pipeline is here
// Demo stage
stage("Something"){
steps{
script{
projectName = params.name
}
}
}
}
}
そして私のJenkinsfileは次のとおりです:
ジェンキンスファイル
@Library("some-shared-lib") _
myPipeline{
name = "Some name"
}
"Some name"
ここで、文字列を"env.JOB_NAME"
コマンドに置き換えたいと思います。通常、Jenkinsfile では を使用name = "${env.JOB_NAME}"
して情報を取得しますが、代わりに共有ライブラリを使用しているため、機能しませんでした。エラーメッセージは次のとおりです。
java.lang.NullPointerException: Cannot get property 'JOB_NAME' on null object
括弧やその他の表記法をいじってみましたが、うまくいきませんでした。パラメータの渡し方が間違っていると思います。ライブラリが呼び出しているパイプラインを(コマンドを介して)実行したら、Jenkinsfile"${env.JOB_NAME}"
を変数に割り当てたいと思いますprojectName
myPipeline{}