説明: Jenkins パイプラインでエラーが見つかりませんでした。

説明: Jenkins パイプラインでエラーが見つかりませんでした。

スクリプトを実行する手順を含むJenkinsパイプラインがありますsh。これに似ていますが、それらの間にはもっと関連のないコマンドがあります。

steps {
            echo 'Running build with all parameters'
                sh '''
                    #!/bin/bash

                    declare -A tests

...など

CentOSのJenkinsノードで実行すると、すべてが正常になり、パイプラインはすべてのステップ/コマンドで正常に実行されます。ただし、Ubuntuを使用してJenkinsノードで同じパイプラインを実行すると、次のエラーが発生します。

+ declare -A tests
/opt/jenkins-slave/workdir/workspace/Metaweb@tmp/durable-9a389b8a/script.sh: 14: declare: not found

どんなアイデアがありますか?

ベストアンサー1

現在のスクリプトの作成方法に応じて、shebangの前に非常に微妙な改行文字があります。改行を明示的にするには:

sh '''\n
  #!/bin/bash\n
\n
  declare -A tests\n

shebangが正しく解釈されるには、スクリプトの最初の行にある必要があるため、次のように先行改行を削除する必要があります。

sh '''#!/bin/bash

  declare -A tests

おすすめ記事