본문 바로가기
개발이야기/개발환경설정

젠킨스 간단 사용기 #3. 자동배포 테스트

by dev.josh 2020. 10. 25.
반응형

Contents

젠킨스 간단 사용기 #1. 설치

젠킨스 간단 사용기 #2. GitHub 연동

젠킨스 간단 사용기 #2. 자동배포 테스트

 

환경

- Red Hat Enterprise Linux version 8

- JDK 1.8

- Jenkins 2

- Node 10

- Nginx

- Git

- GitHub

 

목적

- Vue 소스를 빌드하여 GitHub에 푸쉬 하는 이벤트로 서버에 자동으로 배포

 

저번 게시물에서 젠킨스 설치까지 완료하였으며,

이번 게시물에서는 GitHub와 연동 및 Vue소스를 빌드하여 자동으로 서버에 배포되는 과정을 진행해 보도록 하겠습니다.

 

 

 

1. 계정 설정

Jenkins 관리 > Manage Credentials

 

> (global)

 

> Add Credentials

 

Kind : Username with password

Scope : Global (Jenkins, nodes, items, all child items, etc)

Username : 깃허브 아이디

Password:  깃허브 패스워드

ID : 젠킨스 안에서 사용될 아이디

Description : 설명

 

 

 

3. 프로젝트 생성

> 새로운  Item

 

> 프로젝트 이름 입력, FreeStyle Project 선택 후  OK

 

 

소스 코드 관리 > Git > 

Repository URL : 배포하려는 대상 프로젝트의 git URL을 입력해줍니다.

Credentials : 1. 에서 생성한 계정 선택

 

Build Now 를 입력하고

#1 내용을 클릭합니다.

 

Console Oupput 메뉴를 누르면 빌드 성공/실패 여부를 확인 할 수 있습니다.

 

 

빌드를 성공하게 되면

/var/lib/jenkins/workspace 안에

jenkins_test 와 jenkins_test@tmp 폴더가 생기는데

jenkins_test 안에 나의 프로젝트 내용이 생성된것을 확인 할 수 있습니다.

 

 

빌드 유발

다시 프로젝트로 돌아가서 빌드 후 처리를 설정해 보겠습니다.

 

> 구성

 

 

빌드 유발 > GitHub hook trigger for GITScm polling

 

 

 Build > Add Build step > Execute shell

 

Command  내용을 아래와 같이 입력해줍니다.

sudo rm -rf /usr/share/nginx/dist/
cd /var/lib/jenkins/workspace/jenkins_test
sudo npm install				
sudo npm run build
sudo mv dist /usr/share/nginx/

sudo rm -rf /usr/share/nginx/dist/  <-- 1. 프론트 소스가 배포되어있는곳의 dist 파일을 제거한다.
cd /var/lib/jenkins/workspace/jenkins_test  <-- 2. 젠킨스 프로젝트 위치로 이동
sudo npm install  <-- 3. npm install
sudo npm run build  <-- 4. 빌드
sudo mv dist /usr/share/nginx/  <-- 5. 프론트 소스가 배포되어있는 곳으로 dist 파일을 옮겨줍니다.

 

 

이제 나의 프로젝트에서 Git Push 동작을 하게되면 소스가 배포되도록 설정 하였습니다.

 

 

 

푸쉬 후에 해당 명령어가 잘 실행되는것을 볼 수 있습니다.

모든 프로세스가 끝나면 최종적으로 프론트엔드 소스가 배포된것을 확인 할 수 있습니다.

 

 

반응형