오늘의하루

Step1. Jenkins 설치 후 프로젝트 Build 및 Start 본문

Spring/mini Project

Step1. Jenkins 설치 후 프로젝트 Build 및 Start

오늘의하루_master 2024. 2. 6. 01:27

Step 1의 목표

1. AWS에서 EC2 인스턴스를 프리티어로 하나 생성한다.

2. Ubuntu 환경에서 Jenkins를 설치한다.

3. 자신의 Git Repository에 있는 Sptring Boot 프로젝트를 Clone한다.

4. Jenkins를 이용하여 Build 한다.

5. Jar 파일을 실행시킨다.


인스턴스 생성 및 연결

AWS에서 EC2 인스턴스를 Ubuntu 환경으로 생성 후 SSH를 통해 연결하였다.

Ubuntu 환경에서 Jenkins를 설치

Jenkins 공식 홈페이지에 친절하게 다운로드 받는 방법이 명시되어 있다.

Jenkins 포트번호 변경 및 접속

$ sudo vim /lib/systemd/system/jenkins.service
# Port to listen on for HTTP requests. Set to -1 to disable.
# To be able to listen on privileged ports (port numbers less than 1024),
# add the CAP_NET_BIND_SERVICE capability to the AmbientCapabilities
# directive below.
# 여기서 포트 번호를 변경할 수 있다.
Environment="JENKINS_PORT=8090"

저장(:wq)후 jenkins를 재시작 한다.

$ sudo systemctl daemon-reload
$ sudo systemctl restart jenkins

이후 지정한 포트번호로 접속하면 드디어 Jenkins 페이지가 나오는데 비밀번호를 입력하라는 창이 나온다.

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

cat 명령어를 통해 비밀번호를 볼 수 있게 되고 비밀번호를 입력한 후 install suggested plugins를 통해 다운로드를 완료하고 루트 계정을 만든 후 아래와 같은 화면이 나오면 성공이다.

새로운 추가 사항

JDK 11버전은 2024년 9월 30일 이후에 종료 될 예정이라고 한다. 추후 사용을 위해 17버전을 사용해야겠다.

Jenkins에 빌드하기(Maven)

Maven 빌드를 하기 위해서는 Jenkins에서 Maven이 필요하기 때문에 Jenkins 관리 > Tools에서 Maven installations을 추가해준다. 그 후 New Item을 통해 빌드할 프로젝트를 만들어보자.

1. Freestyle project 선택 후 이름을 작성해준다.

2. 소스 코드 관리에서 Git을 선택 후 Repository URL을 입력해준다.

3. Branch Specifier을 2번의 Repository에 알맞게 변경한다.

4. 빌드 유발을 선택한다.

5. 빌드 환경을 선택한다.

6. Build Steps를 선택해준다.

지금은 Maven 프로젝트이기 때문에 Invoke top-level Maven targets를 선택해한 Tools에서 만든 Maven을 선택 후 Goals에 원하는 maven 명령어를 실행해준다.

7. 만약 pom.xml파일 바로 Repository의 첫 화면에 없다면 해당 경로를 고급을 누른 후 POM에 작성해줘야한다.

8. 저장 후 외쪽 메뉴에서 지금 빌드를 하게 되면 빌드가 시작된다.

 

성공시

실패시

빌드 유발

1. Build whenever a SNAPSHOT dependency is built

기본 설정이며 POM에 설정되어 있는 모든 의존적인 프로젝트들에 대해서도 같이 빌드를 진행하겠다는 설정

2. 빌드를 원격으로 유발

외부에서 URL을 통해 빌드를 진행할 수 있도록 설정

3. Build after other project are built

다른 프로젝트가 빌드되었을 때 같이 빌드되도록 설정

4. Build periodically 

분, 시간, 일, 주, 월 등을 지정해주면 해당 시당에 빌드가 되도록 설정

5. GitHub hook trigger for GITScm polling

깃허브의 push 이벤트가 발생할때 마다 빌드되도록 하는 설정

6. Poll SCM

스케줄러처럼 주기적으로 감시하여 변경된 사항이 존재한다면 빌드를 수행하는 설정이며 Build periodically에서 사용하듯이 사용가능하다.

Comments