ここで多くのことを読んでいますが、まだこの問題を解決する方法を見つけることができません。
steps.wrap([$class: 'AnsiColorBuildWrapper', 'colorMapName': 'XTerm']) {
steps.withCredentials([steps.usernamePassword(credentialsId: "test", usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD')]) {
steps.sh """
curl --silent -u \${GIT_USERNAME}:\${GIT_PASSWORD} -H "Content-Type: application/json" -X POST https://some.url --data-binary @- <<-EOF
{
"state": "$STATE",
"key": "\$JOB_NAME",
"name": "\$BUILD_TAG",
"url": "\$BUILD_URL",
"description": "$DESCRIPTION"
}
EOF"""
Jenkins共有ライブラリにあります。空白を避ける必要があることを読んでいますが、ここでどの空白を作成しているのかわかりません。このエラーは引き続き発生します。
line 11: warning: here-document at line 2 delimited by end-of-file (wanted `EOF')
ベストアンサー1
変数がすでにJSONでエンコードされていると仮定しない限り、無効なJSONを生成する可能性があるだけでなく、ここでドキュメントにインデントする問題もあります。
<<-EOF
ここでJSON文書を含む文書を起動します。これらのドキュメントは文字列で区切る必要があり、EOF
文字列はそのままにしてください(インデントはまったくありません)。またはタブ(いいえスペース)。同じ行には、スペースや他の任意の種類の文字を含めることはできません。後ろにひもEOF
。
私の考えでは、コードが空白にインデントされているため、シェルのパーサーが終了文字EOF
列を見つけることができないようです。