0

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}"を変数に割り当てたいと思いますprojectNamemyPipeline{}

4

1 に答える 1