Ch5. Jenkins

SeoYaeJun·2025년 8월 7일

2학기 SW 교육

목록 보기
5/8
post-thumbnail

0. Jenkins란 무엇인가

  • 오픈소스 자동화 서버
  1. 빌드,테스트,배포 과정을 코드로 정의해서 자동화
  2. Pipeline as Code 개념으로 파이프라인 흐름을 Jekinsfile에 저장
  • Pipeline as code 개념이란 코드저장소에 함께 버전을 관리하고 (빌드->테스트->배포) 단계를 GUI가 아닌 텍스트 기반 스크립트(코드)로 작성
  • CI/CD 파이프라인이란?
    CI(Continuous Integration) - 개발자가 코드를 자주 병합(Merge)하고 병합될때마다 자동으로 빌드, 테스트
    CD(Contiunuous Delivery/Deployment) - 빌드가 성공하면 자동으로 배포
    (빌드 -> 테스트 -> 배포) 전체과정을 파이프라인이라고 부름

Jenkinsfile 활용법
0.Jenkinsfile 한 파일만으로 전체 흐름이 정의
1.프로젝트별 루트 디렉터리에 Jenkinsfile 추가
2.Git 웹훅으로 푸시 → Jenkins 파이프라인 실행” 연동
3.Declarative(선언형) 또는 Scripted(스크립트형) 문법 선택

Jenkinsfile의 간단한 예시'

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building...'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying...'
            }
        }
    }
}

stages - 작업단계 (Build->Test->Deploy)
steps - 각 단계에서 실행할 명령들

만약 기존 GUI 방식대로 했다면 일일히 한단계마다 버튼을 눌러서 클릭. 그러나 Pipeline 방식을 통해 언제든 똑같이 재현이 가능하고, 수정도 편리하다는 장점

  • 주요 기능
    1.지속적 통합(CI): 개발자가 푸시할 때마다 자동 빌드·테스트
    2.지속적 배포/CD: 빌드 결과물을 자동으로 배포 환경에 전달

실무에서의 활용 사례
1.코드 푸시 → 자동 빌드
GitHub/GitLab 웹훅(Webhook) 연동
커밋 발생 즉시 mvn clean package·npm install 등 실행

2.컨테이너 이미지 생성·배포
Docker CLI 플러그인 활용
빌드 완료된 애플리케이션을 DockerHub 또는 사내 레지스트리에 자동 푸시

3.테스트 자동화
단위·통합 테스트 스크립트 실행
실패 시 메일·슬랙 알림 전송

4.다단계 배포 파이프라인
DEV → QA → PROD 순차 배포
각 단계별 승인·롤백 옵션

  • 한줄 정리
    Jenkins는 ‘코드 변경 → 자동 빌드·테스트 → 자동 배포’ 흐름을 쉽고 반복 가능하게 만들어주는 핵심 도구
    파이프라인을 코드로 관리하며, 다양한 플러그인으로 거의 모든 개발·배포 시나리오에 대응가능

1. 깃허브 Jenkins payload 설정.

2. Jenkins에서 Trigger 설정, Git URL 설정

깃에서 hook하면 수행
-> 변경사항: Eclipse에서 Push하면 Jenkins Trgger를 통해 수행

3.Github Weebhook 설정

4. Eclipse에서 push하면 git, Jenkins 양쪽에 Push

시행착오 모음집.. 대부분 Git url 세팅 관련된 내용들이다. Jenkins 보안, Git 관련 세팅할때 주의

5. Docker hub에 PUSH

vagrant@vm6:~$ docker run -d --name ex02Con -p 8081:8081 ex-02-app


ID, Password 보안 관련 설정

6. 결론

Eclipse에서 Push하면 docker hub, github, Jenkins에 동시에 push되는 모습을 확인할 수 있다.


  • Jenkins에 정상적으로 Upload 되는지를 확인하기위해 0,1,2,3,4 순서로 차례대로 진행
profile
안드로이드 개발자

0개의 댓글