2. 빌드/테스트/배포
Jenkins 서버에서 서비스를 시작하고 외부에서 웹으로 접속하면 대략 아래와 같은 화면을 볼 수 있다.

💡 Comment#
이전에 내가 Agent 설정을 했었던 것 같은데, 어떻게 했는지 정확히 기억이 나지 않는다. ChatGPT설명 기준으론, 아래와 같은 작업들을 해야 한다고 한다.
1. (선택) Git 툴 경로 등록#
Manage Jenkins → Tools → Git → Name:
git, Path:/usr/bin/git→ Save
2. (처음은 한 대로) agent any로 돌리기#
에이전트 분리는 나중에. 일단 컨트롤러에서 실행 확인부터 하자.
Job 만들기 (Pipeline from SCM 방식)#
+ 새로운 Item 버튼을 클릭한다.

Item의 이름을 입력하고 파이프라인(Pipeline)을 선택해준다.

그리고 아래와 같이 입력하고 Save해준다.
참고로 Crendentials가 없을 텐데, 해당 .git에 접속하기 위한 암호 설정으로 + Add버튼을 눌러 추가해준다.

이제 방금 만든 Job(my-ci-demo-2)을 Jenkins 홈에서 확인할 수 있다.

클릭하면 아래와 같은 화면이 나온다.

맨 처음 들어가면 build관련 이력이 아무것도 없을텐데, 위와 같이 나온건 내가 이미 지금 빌드 버튼을 눌렀기 때문이다.
현재 상태에선 master로 push해도 자동빌드가 되지 않는데, 이건 Trigger 설정이 되어있지 않기 때문이다. 다시 구성(Configure) 버튼을 눌러 아래와 같이 Trigger설정을 해준다.

위의 화면과 같이 Github hook trigger for GITScm polling을 체크하면 되는데, 이렇게 되면 Jenkins서버가 github에서 master branch로 push되는걸 알아차릴 수 있다. 단, Jenkins서버가 모든 IP에 오픈되어 있어야 한다. 즉, AWS EC2서버의 8080포트 인바운드 규칙을 0.0.0.0/0으로 해야한다.
근데 이렇게 하면 사실 운영상의 문제가 있어서, 실제 운영은 Nginx로 443포트만 공개하는걸 추천한다고 한다. 그런데 지금은 잠깐 실습이니까 Test용으로 살짝만 열어보자.
이제 github사이트 들어가서 Jenkins서버가 Webhook할 수 있게 Setting해줘야한다. 방법은 아래와 같다.


여기까지 설정후 다시 Webhooks 메뉴를 여러번 눌러보면 아래와 같이 Jenkins서버가 hooking했다는 걸 알 수 있다. (처음에는 한번도 후킹한적 없다고 뜸)

이렇게 세팅해놓고 master로 push하게 되면, 자동으로 빌드가 되는 것을 확인할 수 있다.
