설명: 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

관련 정보