Jenkins 원격 서버 배포(Publish Over SSH) 내용 후, 진행 했다. (연동은 완료)
현재는 github push 할 경우, 가상 서버에 있는 Jenkins에서도 push 해당 되는 빌드가 자동으로 실행된다.
🔔 자동 빌드 처리
Github Push만 처리해도 Jenkins를 통해 자동 빌드 처리하는 방법
✔️ Webhook이란?
✔️ Webhooks 추가
http://본인의Jenkins주소/github-webhook/
✔️ 현재 aws ec2 가상서버
✔️ Github Integeration Plugin
Github와 Jenkins를 연결할 때, Github Integeration Plugin이 필요하다. (Jenkins 관리 -> 플러그인 관리)
플러그인 관리에서 Github Integration
설치
✔️ Jenkins 설정
Github hook trigger for GITScm polling
체크한다.
=> 모든 설정이 완료되었을 시, 설정한 Branch에 Push를 하였을 때, 자동으로 jenkins 빌드가 유발되는 것을 볼 수 있다.
✔️ 그런데?
이전까지 jenkins에 설정했던 작업을 하니, git push가 될 시, jenkins build가 자동으로 실행은 되고 build 생성까지 되지만 가상 서버에 있는 project에는 자동으로 적용되지 않는 상황이 발생했다.
=> 쉘.sh을 만들어서 실행하면 되지 않을까? (중간에 서버 끊기는 상황이 발생한다.)
=> 그렇다면?
....
현재는 git push 할 경우, Jenkins 빌드가 실행되지만 가상 서버에는 변경 내용이 적용되지 않는다.
또한, Build 오류까지 발생...
✔️ vi 편집기에 명령어를 입력한 후, jenkins에서 빌드가 실행되었을 경우
이와 같은 로그를 볼 수 있었다.
SSH: Connecting wiht ~ 이후가 실행되지 않는다.
이때는 Post build task가 아닌 Send build artifacts over SSH를 설정 후 추가했을 때 결과이다.
또한 이와 같이 실행 될 경우, 가상 서버가 엄청 느려졌다.
✔️ jenkins에 Gradle 추가 및 Post build task 추가(Send build ~ over SSH 삭제)
이번에는 git 관련 오류, 오류를 또한 찾아야 한다. (예상으로 git이 현재 디렉터리에 없어서 발생하는 것 같다.)
=> 아니 그래서 어떻게 할건데?? 오류를 계속 잡을꺼야? (이번 Jenkins 공부하며 수많은 오류를 본 것 같다.)
일주일동안 해결 하지 못하며 헤매고 있다가 아는 분께서 Pipeline
을 사용하는게 좋을 것이다.
라는 말씀하셔서 현재 Pipeline
에 대해 알아보고 있다.
✔️ 파이프라인을 사용할 시
(1) 사용자가 git push 한다.
(2) 젠킨스 서버가 pull로 받고 build 하도록 코드 작성한다. (쉘 명령어 편집기에 입력?)
(3) jar 파일 ssh로 배포
의 구조로 실행된다고 한다. (이제 이에 대해 알아볼 예정이다.)
Jenkins 복잡하구만!