TFS 2015 릴리스에서 bash 스크립트를 실행하려고 합니다. 이를 위해 "Shell Script" - Job을 사용하고 있습니다.
콘텐츠:
#!/bin/bash
echo "Start SSH"
ssh user@ip << EOF
echo "Unzip"
unzip -o -d A B.zip
rm B.zip
cp -r A/. B
rm -rf A
echo "Finished"
EOF
내 bash에서 스크립트를 시도했는데 ist가 올바르게 작동하지만 릴리스를 실행하면 다음과 같은 결과가 나타납니다.
2018-08-29T09:04:08.7988672Z 시작 작업: Shell Script $(System.DefaultWorkingDirectory)/Build Magento/magento/scripts/build.sh 2018-08-29T09:04:08.7988672Z 작업 폴더를 기본값으로 설정: D:\ AgentA\tasks\ShellScript\1.0.17
2018-08-29T09:04:08.9863750Z ##[디버그]확인 경로 : D:\AgentA\tasks\ShellScript\1.0.17\task.json
2018-08-29T09:04 :08.9863750Z ##[디버그] 리소스 파일을 다음으로 설정: D:\AgentA\tasks\ShellScript\1.0.17\task.json
2018-08-29T09:04:08.9863750Z ##[debug]system.culture=en- US
2018-08-29T09:04:08.9863750Z ##[디버그] 다음에서 문자열 로드: D:\AgentA\tasks\ShellScript\1.0.17\task.json
2018-08-29T09:04:08.9863750Z ##[디버그 ] 다음에서 loc 문자열을 로드합니다: D:\AgentA\tasks\ShellScript\1.0.17\Strings\resources.resjson\en-US\resources.resjson 2018-08-29T09:04:08.9863750Z ##[디버그]경로 확인: null
2018-08-29T09:04:08.9863750Z ##[디버그]다음에서 문자열 로드: D:\AgentA\tasks\ShellScript\1.0.17\node_modules\vsts-task-lib\lib.json 2018-08-29T09: 04:08.9863750Z ##[디버그]다음에서 loc 문자열 로드: D:\AgentA\tasks\ShellScript\1.0.17\node_modules\vsts-task-lib\Strings\resources.resjson\en-US\resources.resjson 2018- 08-29T09:04:08.9863750Z ##[디버그]작업 결과: 실패
2018-08-29T09:04:08.9863750Z 찾을 수 없음 bash: null
2018-08-29T09:04:09.0019981Z 작업 완료: ShellScript
2018-08- 29T09:04:09.0176245Z ##[오류]작업 ShellScript가 실패했습니다. 이로 인해 작업이 실패했습니다. 자세한 내용은 작업 로그를 확인하세요.
결국 Bash는 TFS 2015에 없나요?
답변1
그래서 해결 방법이 있습니다. CommandLine-Job에서 Plink를 사용하고 있습니다. Job은 Plink를 호출하고 Plink는 대상에 연결하여 지정된 명령을 실행합니다. Plink.exe는 TFS에 있어야 합니다.