Debian 11에서 bash 스크립트를 실행 중이었고 제대로 작동했습니다. Ubuntu Server(아마 22.04)로 옮겨야 했지만 이제는 작동이 멈췄습니다. 내 스크립트는 다음과 같습니다.
BRANCHES=("master" "develop")
for BRANCH in "${BRANCHES[*]}"
do
echo Building $BRANCH
git checkout "$BRANCH"
#Code doing tasks
done
또한 "${BRANCHES[@]}"를 시도했는데
결과가 나왔습니다.
Building ("master" "develop")
error: pathspec '("master" "develop")' did not match any file(s) known to git
데비안에서는 제대로 작동하지만 우분투에서는 작동하지 않는 이유를 이해할 수 없습니다. 내 생각엔 bash에서는 실행되지 않는 것 같습니다(그러나 #!/bin/bash +x
스크립트 위에는 있습니다 ). AFAIK Jenkins 셸 실행을 통해 이 스크립트를 실행하고 있고 서버에 대한 SSH 액세스 권한이 없기 때문에 쉽게 확인할 수 없습니다.
답변1
이 문제는 EnvInject 플러그인이 빌드할 분기를 제대로 설정하지 않아서 발생합니다. 배열 선언을 문자열로 분할하고 해당 문자열을 환경 변수에 추가하는 간단한 Python 스크립트를 작성하여 문제를 해결했습니다. 그런 다음 스크립트에서 공백으로 구분된 문자열의 모든 요소를 간단히 반복할 수 있습니다.