スクリプトを実行する手順を含む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