Jenkins를 활용해서 Windows Application 자동화 배포시 발생했던 문제점을 기록한 글입니다.
개발 환경
- azure내 windows vm이 설치되어 있고 jenkins에서 azsure start를 통해 동작하는 것으로 알고있음(서버 개발자)
- windows user 계정을 관리자 계정만 설정하고 그 이외의 유저는 설정하지 않음
- Mutibranch Pipeline으로 Jenkins 아이템을 설정하고 BitBucket Project 연결
- Windows VM내에 Visual Studio 설치(회사 계정을 사용)
사용한 Plugins
Office 365 Connector
(Teams Webhooks을 사용하기 위해)
발생한 오류 리스트
Windows VM
- VM 설치 시 영어로 설치하여 빌드 인코딩 문제가 발생함(파일을 찾을 수 없다고 나오면 대부분 이 오류였음)
- nuget관련 오류가 있으나, nuget을 설치후 환경변수로 설정하여 해결
- build.bat을 동작시킬 때 nuget restore을 요구하는 상황이 있어 배치 파일에 코드를 삽입해서 해결
- 인코딩 문제 -> chcp 65001을 지정하여 설정하니 오류 해결
- cpp라이브러리 문제가 있었는데 회사 내 개발자를 통해 bitbucket에 라이브러리도 포함하여 업로드 하는 방식으로 변경함
- windows script안에 timeout and cmd /k 키워드가 있었는데 Jenkins내에서 오류가 발생하여 이부분은 주석처리 하는것으로 변경(다른 해결 방법도 있으나 담당 개발자에게 문의한 결과 Jenkins용으로 따로 배치를 만들어주어 해결)
Jenkins Pipeline
- Jenkins pipeline에서 bat "whoami"를 했을 때와 windows vm내 cmd창에서 whoami 했을 때 user 정보가 다른 경우가 있어 build.bat이 동작하는 과정에서 문제가 있음.
-> azure vm은 로그인을 따로 하는 설정이 없다고 함. 그래서 유저 이름이 다름
-> 따라서 jenkins agent를 실행할 때 시작 스케쥴러에 등록하여 유저 이름을 매칭함
Process
문제가 있을 경우 언제든 연락주시면 수정하겠습니다.