소개
Jenkins 와 Git 을 통합하는 이번 실습에 오신 것을 환영합니다. 소스 제어 관리 (SCM) 는 현대 소프트웨어 개발의 핵심입니다. Jenkins 와 같은 지속적 통합 (CI) 서버를 Git 과 같은 SCM 시스템과 통합하는 것은 빌드 및 테스트 프로세스를 자동화하는 데 있어 가장 기본적인 단계입니다.
이번 실습에서는 다음 내용을 학습합니다:
- Jenkins Git 플러그인이 사용 가능한지 확인합니다.
- 로컬 Git 저장소에 연결된 Freestyle 프로젝트를 생성합니다.
- 저장소의 스크립트를 실행하는 빌드 단계를 추가합니다.
- 구성을 테스트하기 위해 수동으로 빌드를 실행합니다.
- 새로운 커밋이 발생할 때 자동으로 빌드가 트리거되도록 SCM 폴링을 구성합니다.
이번 실습을 위해 Jenkins 인스턴스와 작은 로컬 Git 저장소가 이미 준비되어 있습니다. 바탕 화면의 Firefox 브라우저를 열어 Jenkins 웹 인터페이스에 접속할 수 있습니다. 브라우저는 자동으로 http://localhost:8080으로 열리므로 URL 을 직접 입력할 필요가 없습니다. 별도의 로그인은 필요하지 않습니다.
Git 플러그인 확인
Jenkins 는 플러그인을 사용하여 기능을 확장합니다. Git 플러그인은 작업 구성 시 사용할 수 있는 Git 옵션을 제공합니다.
- 바탕 화면에서 Firefox 브라우저를 엽니다. 브라우저는 자동으로
http://localhost:8080으로 연결됩니다. 별도의 로그인은 필요하지 않습니다. - Jenkins 대시보드에서 오른쪽 상단의 톱니바퀴 아이콘을 클릭하여 **Manage Jenkins(Jenkins 관리)**로 이동합니다.
- **Plugins(플러그인)**를 클릭합니다.
- Installed plugins(설치된 플러그인) 탭을 선택합니다.
- 필터 상자에
git을 입력합니다. - 설치된 플러그인 목록에 Git이 나타나는지 확인합니다.

Git 플러그인이 확인되었으므로, 이제 저장소에서 소스 코드를 가져오는 프로젝트를 생성할 수 있습니다.
프로젝트 생성 및 Git SCM 구성
Git 플러그인이 설치되었으므로, 이제 Jenkins 프로젝트를 생성하고 Jenkins 컨테이너에 준비된 로컬 저장소에서 소스 코드를 가져오도록 구성할 수 있습니다.
- 왼쪽 상단의 이동 경로 (breadcrumb) 에서 Dashboard(대시보드) 링크를 클릭하여 메인 Jenkins 대시보드로 돌아갑니다.
- 왼쪽 사이드바에서 **New Item(새로운 Item)**을 클릭합니다.
- 항목 이름으로
git-integration-project를 입력합니다. - Freestyle project를 선택합니다.
- OK를 클릭합니다.
그러면 프로젝트 구성 페이지로 이동합니다.
- Source Code Management(소스 코드 관리) 섹션까지 아래로 스크롤합니다.
- Git 옵션을 선택합니다. 이 옵션이 보이지 않는다면 이전 단계에서 Git 플러그인이 올바르게 설치되었는지 확인하십시오.
- Repository URL(저장소 URL) 필드에 이번 실습을 위해 준비된 로컬 저장소 URL 을 입력합니다:
git://localhost/git-playground.git
- **Branch Specifier(브랜치 지정자)**는 기본값인
*/master로 둡니다. 이는 Jenkins 가master브랜치를 사용하도록 지시합니다. - 페이지 하단의 Save(저장) 버튼을 클릭합니다.

로컬 Git 저장소에 연결된 Jenkins 작업을 성공적으로 생성했습니다. 다음 단계에서는 체크아웃된 코드로 어떤 작업을 수행할지 정의합니다.
빌드 단계 추가 및 수동 빌드 실행
이제 Jenkins 가 코드를 어디서 가져와야 하는지 알게 되었으므로, 그 코드로 무엇을 할지 알려주어야 합니다. 셸 명령을 포함한 빌드 단계를 추가하고 수동으로 빌드를 실행하여 테스트합니다.
git-integration-project프로젝트 페이지에서 왼쪽 사이드바의 **Configure(구성)**를 클릭합니다.- Build Steps(빌드 단계) 섹션까지 아래로 스크롤합니다.
- Add build step(빌드 단계 추가) 드롭다운을 클릭하고 **Execute shell(셸 실행)**을 선택합니다.
- Command(명령) 텍스트 영역에 다음 빌드 명령을 입력합니다:
echo "Building from the Git repository"
./build.sh
작업이 실행되면 Jenkins 는 먼저 Git 저장소를 작업 공간 (workspace) 으로 복제한 다음, 해당 작업 공간 내에서 이 명령들을 실행합니다. build.sh 스크립트는 저장소에 포함되어 있으므로, 성공적으로 실행된다면 Jenkins 가 셸 단계를 실행하기 전에 코드를 올바르게 체크아웃했음을 의미합니다.
- **Save(저장)**를 클릭합니다.
- 프로젝트 페이지로 돌아왔습니다. 왼쪽 사이드바에서 **Build Now(빌드)**를 클릭하여 빌드를 시작합니다.
Build History(빌드 기록) 패널에 새로운 빌드가 나타납니다. 완료될 때까지 기다립니다 (성공 시 상태 아이콘이 파란색으로 바뀝니다).
- 빌드 번호 (예:
#1) 를 클릭합니다. - 빌드 메뉴에서 **Console Output(콘솔 출력)**을 클릭합니다.

Jenkins 가 저장소를 복제하고 명령을 성공적으로 실행했음을 확인하는 출력이 표시되어야 합니다.
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/git-integration-project
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building from the Git repository
Building from the Git repository
+ ./build.sh
Repository build script running
Workspace: /var/jenkins_home/workspace/git-integration-project
README.md
build.sh
Finished: SUCCESS
SCM 폴링을 통한 자동 빌드 활성화
수동으로 빌드를 실행하는 것은 테스트에 유용하지만, CI 의 진정한 힘은 자동화에 있습니다. 이 단계에서는 Jenkins 가 Git 저장소의 변경 사항을 주기적으로 확인 (폴링) 하도록 구성합니다.
git-integration-project의 구성 페이지로 다시 이동합니다 (프로젝트 페이지 > Configure(구성)).- Build Triggers(빌드 유발) 섹션까지 아래로 스크롤합니다.
- Poll SCM(SCM 폴링) 옆의 확인란을 선택합니다.
- Schedule(일정) 텍스트 상자가 나타납니다. 이는 cron 구문을 사용하여 Jenkins 가 얼마나 자주 저장소의 변경 사항을 확인할지 정의합니다. 1 분마다 폴링하려면 다음을 입력합니다:
* * * * *
- **Save(저장)**를 클릭합니다.
일정이 작업 구성과 함께 저장되었습니다. 이제 Jenkins 는 1 분마다 구성된 저장소를 확인하고 새로운 커밋이 감지되면 자동으로 새 빌드를 시작합니다.
- Jenkins UI 로 돌아가서
git-integration-project페이지로 이동합니다. - 왼쪽 사이드바에 **Git Polling Log(Git 폴링 로그)**라는 새로운 옵션이 보일 것입니다. 클릭합니다.
- 이 페이지는 Jenkins 가 최소 한 번의 폴링 주기를 실행한 후의 폴링 활동을 보여줍니다. 첫 번째 항목이 나타나기까지 최대 1 분이 걸릴 수 있습니다. 다음과 같은 항목이 표시되어야 합니다:
Started on ...
Using strategy: Default
[poll] Last Built Revision: Revision ...
The recommended git tool is: NONE
No credentials specified
> git --version ## timeout=10
> git ls-remote -h -- git://localhost/git-playground.git ## timeout=10
...
No changes

이는 Jenkins 가 저장소를 자동으로 폴링하도록 구성되었음을 보여줍니다. 실제 프로젝트에서는 저장소가 일반적으로 Git 서버에 호스팅되며, 새로운 커밋이 나타날 때 Jenkins 가 빌드를 수행하게 됩니다.
요약
이번 실습을 통해 CI 파이프라인에서 가장 중요한 통합 중 하나인 Jenkins 와 Git 소스 제어 저장소 연결에 대한 실무 경험을 쌓았습니다.
다음 작업을 성공적으로 완료했습니다:
- Jenkins 의 Git 통합 기능을 활성화하기 위해 필수적인 Git 플러그인이 사용 가능한지 확인했습니다.
- Freestyle 프로젝트를 생성하고 Git 저장소에서 코드를 체크아웃하도록 구성했습니다.
- 체크아웃된 코드에서 셸 스크립트를 실행하는 빌드 단계를 정의했습니다.
- 수동 빌드를 실행하여 설정을 검증했습니다.
- Poll SCM을 사용하여 자동 빌드 트리거를 설정함으로써, Jenkins 가 새로운 커밋을 자동으로 감지하고 빌드할 수 있도록 했습니다.
이러한 기술은 개발 워크플로우를 자동화하는 데 필수적이며, Jenkins 를 사용하여 강력하고 효율적인 CI/CD 파이프라인을 구축하기 위한 첫걸음입니다.

