인프라
[서버 생성기 1탄] Jenkins CICD 파이프라인 구축 (with Node)
memeseo
2024. 11. 1. 15:50
회사에서 현재 개발 작업 중인 브랜치에 대한 스테이징 서버를 만들 일이 생겼다. 나중에 볼일이 생길 것 같아서 정리해 보는 .. 서버 생성기 1탄. 퍼블리셔 분과 백엔드 개발자 분과 협업 중이라 서로의 작업물을 바로 확인할 수 있도록 CICD 파이프라인을 먼저 구축해야 됐다.
git 브랜치와 연동해 jenkins로 빌드 하려고 한다면 git에서 credentials를 먼저 발급받아야 한다. 나는 회사에서 사용하고 있는 ssh credentials가 있어서 이 과정은 생략했다.
1. 프로젝트 생성
- 젠킨스 로그인 후 '+ 새로운 item' 클릭
- item 이름 설정 > Freestyle Project 템플릿 선택 > Ok 버튼

2. Github 연동

- 소스 코드 관리에서 Git 선택 > Repository URL 입력
- Credentials 클릭 > 전에 등록해둔 credentials 선택

- branch 입력 ( 나는 stage 브랜치를 빌드할거니까~~~~ stage 입력)
3. 빌드 시점 설정
나는 내가 선택한 브랜치에 push 이벤트가 일어났을 때 빌드되도록 설정하려고 했다.

- 'Build when a change is pushed to GitLab. GitLab webhook URL:~~~~~ ' 클릭
- webhook URL 복사
- 고급 버튼 클릭 > Secret token Generate 클릭 > 생성된 Secret token 복사
- jenkins에 연동하려고 하는 git repository 이동 > Settings > Webhook 설정
- Add new webhook 클릭

- 복사한 URL을 웹훅 설정 페이지 URL에 붙여넣기
- 복사한 Secret token을 웹훅 설정 페이지 Secret token에 붙여넣기

- stage 명을 가지고 있는 브랜치에 push 이벤트가 일어났을때 trigger되도록 설정
- Save changes 클릭
3. 빌드 환경 설정

- 본인에게 해당하는 빌드 환경 선택
3. 빌드 스텝스 설정

- 빌드 명령어 입력
나 같은 경우는 package-lock.json과 node modules를 삭제하고 다시 패키지를 다운 받고 빌드하고 있다.
근데 package-lock을 지우는 게 맞는지 .. 고민중
4. 빌드 후 조치

- 빌드된 파일 저장할 곳 설정
나 같은 경우는 회사에서 구매한 stage 서버에 빌드 된 파일을 저장했다. 이렇게 설정을 마친 후 push 이벤트를 통해 빌드가 완료되면 서버에 접속하여 해당 빌드 파일이 업로드됐는지 확인하면 된다. 다음은 도메인 설정 후 서버에 접속해서 해당 도메인을 적용하는 방법을 리뷰하겠다.