🌈 젠킨스란
젠킨스는 소프트웨어 개발 시 지속적 통합(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메세지를 받을 때마다 빌드를 하게된다.

