Jenkins Publish over SSH 사용시 파일전달 오류(No such file or directory) - woowacourse-teams/2020-songpa-people GitHub Wiki

Publish over SSH에서 파일이 전달되지 않는 문제

비밥의 jenkins글을 참고하여 jenkins환경을 구축하였다. 하지만 파일전송에서 문제가 생겼다.

설정

빌드에 설정해준 값은 다음과 같다.

위와 같이 입력해주면 build를 했을 때 아래 경로에 tar파일이 생성된다.

빌드후조치에 설정해준 값은 다음과 같다.

위와 같이 입력한 후 빌드를 돌렸더니 다음과 로그를 확인할 수 있었다.

빌드 로그

...중략
DEPLOY USER = ubuntu
ZIP_DIR = /home/ubuntu/app/zip
mv: cannot stat '/home/ubuntu/hashtagmap-web.tar': No such file or directory
SSH: EXEC: completed after 201 ms
SSH: Disconnecting configuration [[email protected]] ...
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]]
Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
Finished: UNSTABLE

4번째줄을 보면 빌드 후 조치 처리과정에서 hashtagmap-web.tar파일을 찾을수 없다는 No such file or directory 에러가 발생하였다.

원인 및 해결

무엇이 문제였을까? 여기저기 찾아보았더니 다음과 같은 글이 있었다. 스택오버플로우 참고글 위의 글을 살펴보면 source files에 워크스페이스상의 상대경로를 입력하라고 한다.

워크스페이스상의 상대경로를 어디서 확인할 수 있는지 찾아보다가 못찾겠어서 그냥 "/var/lib/jenkins/workspace/web/script/hashtagmap-web" 경로중에서 "/var/lib/jenkins/workspace/web"를 워크스페이스로 생각했다. (=> /var/lib/jenkins/workspace/프로젝트이름)

그래서 상대경로인 "script/hashtagmap-web/hashtagmap-web.tar"를 source files에 입력했다.

그랬더니 문제가 해결되고 빌드후조치도 성공하였다.