> For the complete documentation index, see [llms.txt](https://incheol-jung.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://incheol-jung.gitbook.io/docs/q-and-a/infra/jenkins.md).

# JENKINS

Jenkins에 대해 알아보자

![https://medium.com/faun/how-to-install-jenkins-on-ubuntu-18-37f4daad1014](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGnwb2HPru7oMtkI24L%2F-MGnz2vhUG9XcgEBZBDE%2F1_VKOZb6LyLiFDCuBXpHgm8g.jpg?alt=media\&token=2405003e-0da6-4b46-b6ca-f4ddf7bda8c2)

## CI/CD란 무엇인가?

### CI(Continuous Integration)

* 지속적인 통합 : 지속적으로 코드에 대한 통합을 진행함으로써 코드 품질을 유지
* 빌드 및 테스트(유닛테스트 및 통합 테스트)를 통해서 병합 진행
* 통합이 완료된 최신 버전을 제공

### CD(Continuous Delivery)

* 지속적인 배포 : 통합과정을 통과한 버전을 사용자 설정에 따라 주기적으로 배포
* 프로덕션 환경으로 배포할 준비가 되어 있는 코드베이스를 확보하는 것이 목표

### CD(Continuous Deployment)

* CI/CD 파이프라인의 마지막 단계
* 배포될 서버나 배포 전략을 코드로 관리하여 형상관리 가능
* 분산 환경에 배포할 경우 더욱 중요하다

## Jenkins

* 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴 – CI (Continuous Integration)
* 젠킨스와 같은 CI 툴이 등장하기 전에는 일정시간 마다 빌드를 실행하는 방식으로 진행 ( 보통 모든 커밋이 끝난 심야 시간대에 이러한 빌드가 집중적으로 진행 – nightly-build )

### Jenkins를 왜 사용할까?

* 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
* 자동화 테스트 수행
* 다양한 플러그인 제공 (TFS, GITHUB, GITLAB)
* 간편한 설정 및 사용법

### Jenkins 설치(Windos 기반)

#### 공식 사이트에서 다운받는다.

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqPsIk6EzsNm-LYCuS%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B306.png?alt=media\&token=9c6edee0-f4a2-4bb9-8a7f-98c9cfb3d70f)

#### 설치 시 비밀번호를 확인한다.

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqPvHjQfpestiJ4i1z%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B307.png?alt=media\&token=7bd112bf-af73-420d-a077-238428ba9cf1)

#### 젠킨스에 기본으로 들어갈 플러그인을 설정한다.

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqPyZtUVIvzCXIj2pp%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B308.png?alt=media\&token=255805fe-86a1-4f6a-b1d3-0d29d14966e3)

#### 관리자 계정을 추가한다.

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQ0HkqiXLyc9xAxDD%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B309.png?alt=media\&token=e73176ae-8d4e-476c-a095-c346fa29f2e2)

#### 젠킨스 설치 이후에 추가로 설치하고 싶은 플러그인이 있다면?

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQ7slQ9JD_mvjgai4%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B311.png?alt=media\&token=0fa79b7d-bb6b-4ebe-ad49-d34fddc2bdcb)

### Repository 연동

#### 연동할 Repository에 Jenkins 설정 추가

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQCsYGBaD2GCC3BT4%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B312.png?alt=media\&token=95d5607a-d2b4-4eec-afac-6ffd8f74fda2)

#### Jenkins에 연동할 Repository의 새로운 프로젝트를 생성한다.

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQFdZp6z2PNI3tgCm%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B314.png?alt=media\&token=03855a1f-da49-4cdf-ab59-04498f0cdb0e)

#### 연동할 Git Repository 정보와 인증 정보를 입력한다.

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQJniU08qui6cza61%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B315.png?alt=media\&token=f9611326-d327-4e15-b59e-e59e9374dd23)

#### 빌드 설정을 한다. (브랜치 전략, 알림 설정, 빌드 전략, 빌드 후 처리 등)

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQNMgTsbJp6XbnAlr%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B316.png?alt=media\&token=21d05f48-1238-4c01-ba75-e2a4b654965e)

![](https://2649832514-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5HOStxvx-Jr0fqZhyW%2F-MGpXcyjTTz3E9yZrNM8%2F-MGqQObBtvtIc6z1WWV4%2F%E1%84%89%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B317.png?alt=media\&token=5931370d-04a8-41cc-a6cd-e2c721659b43)

## 참고

* <https://devuna.tistory.com/56>
* <https://onlywis.tistory.com/9>
* <https://velog.io/@ash3767/CICD>
