클라우드 컴퓨팅/Infrastructure

[Jenkins] 젠킨스 설치 & 빌드 설정 세팅

uzguns 2022. 9. 1. 09:47

🌈 젠킨스란

젠킨스는 소프트웨어 개발 시 지속적 통합(conticuous integration) 서비스를 제공하는 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.

 

🚀 젠킨스 설치

  • jenkins를 구동할 포트를 설정한다.
  • 기본값은 8080이지만 사용중일 확률이 높아서 80으로 해줬다.

  • jdk가 설치된 java home 경로 설정

설치가 끝나면 localhost:80에 접속할 수 있게된다.

 

Set up

아래 경로로 들어가 initialAdminPassword를 메모장으로 열고 입력된 비밀번호를 복사한다.

C:\ProgramData\Jenkins\.jenkins\secrets

비밀번호를 localhost:80에 Administrator Password에 붙여넣으면 플러그인 설치 창이 나온다.

Install suggested plugins를 선택하면 웬만한 플러그인은 미리 다 설치된다.

  • O

설치가 다 된후에는 Admin User를 만들도록 하는데 앞으로 jenkins 로그인에서 사용할 계정을 입력하면된다.

여기까지 하면 젠킨스 설치와 젠킨스 서버가 구축된 대시보드 창을 확인할 수 있다.

(스킵가능) Jenkins 관리 > 시스템 설정에 들어가면 맨 위에 홈 디렉토리 주소가뜬다. 이걸 환경변수에 추가

 

⚡ Git 연동하기

먼저 깃 developer settings에서 personal token을 받아야한다.

토큰으로 접근할 수 있는 범위를 설정한다. 접근 범위는 repo와 admin:repo_hook을 선택한다.

Jenkins 관리 > Manage Credential > Add Credentials로 들어가서 추가해준다.

그럼 crediential이 생성된 것을 확인할 수 있다.

 

✨ Jenkins 프로젝트 생성

테스트를 위해 간단한 문자열을 반환하는 프로젝트를 생성한다.

package com.jenkinstest;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    @GetMapping("/")
    public String hello() {
        return "hello";
    }
}

build.gradle

// @SpringBootApplication이 설정된 파일
bootJar {
	mainClassName = 'com.jenkintest.JenkinstestApplication'
}

bootRun {
	String activeProfile = System.properties['spring.profiles.active']
	systemProperty "spring.profiles.active", activeProfile
}

git에 올려준다.

gradle 플러그인을 설치하고

 

gradle-wrapper.properties 에 있는 gradle 버전으로 Global Tool Configuration을 설정해준다.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

Jenkins와 github 연결이 끝났으면 Jenkins에서 프로젝트를 생성한다.

빌드 트리거 설정

아래 그림과 같이 Build Triggers메뉴에서 Github hook trigger for GITScm polling 을 선택하면 Github에 코드가 푸쉬될때마다 빌드를 트리거링 하도록 설정할 수 있다.

이렇게 설정하면 GitHub에서 코드 코드 푸쉬과 될 때 webHook 메세지를 Jenkins에 보내주는데 이 WebHook메세지를 받을 때마다 빌드를 하게된다.