소개
Jenkins 와 Git 통합에 관한 실습에 오신 것을 환영합니다. 소스 제어 관리 (SCM, Source Control Management) 는 현대 소프트웨어 개발의 초석입니다. Jenkins 와 같은 지속적 통합 (CI, Continuous Integration) 서버를 Git 과 같은 SCM 시스템과 통합하는 것은 빌드 및 테스트 프로세스를 자동화하는 기본적인 단계입니다.
본 실습에서는 다음 사항을 학습하게 됩니다.
- Jenkins Git 플러그인이 사용 가능한지 확인하는 방법.
- 로컬 Git 저장소에 연결된 프리스타일 (Freestyle) 프로젝트를 생성하는 방법.
- 저장소의 스크립트를 실행하기 위한 빌드 단계를 추가하는 방법.
- 구성을 테스트하기 위해 빌드를 수동으로 실행하는 방법.
- 새로운 커밋 발생 시 빌드를 자동으로 트리거하도록 SCM 폴링을 구성하는 방법.
본 실습을 위해 Jenkins 인스턴스가 이미 실행 중입니다. 데스크톱에서 Firefox 브라우저를 열어 Jenkins 웹 인터페이스에 접속할 수 있습니다. 브라우저가 자동으로 http://localhost:8080으로 열리므로 URL 을 수동으로 입력할 필요가 없습니다. 로그인도 필요하지 않습니다.
Git 플러그인 확인
Jenkins에는 Git 통합 기능이 내장되어 있습니다. Git 플러그인은 기본적으로 설치되어 있어 Jenkins가 Git 저장소와 상호 작용할 수 있습니다. Git 플러그인이 사용 가능한지 확인해 보겠습니다.
- 데스크톱 인터페이스에서 Firefox 브라우저를 엽니다. 브라우저는 자동으로
http://localhost:8080으로 열리므로 URL을 수동으로 입력할 필요가 없습니다. 로그인할 필요도 없습니다. - Jenkins 대시보드에서 오른쪽 상단 모서리에 있는 톱니바퀴 아이콘(설정 버튼)을 클릭합니다.
- 설정 페이지에서 Plugins를 찾아 클릭합니다.
- Installed plugins 탭을 선택합니다.
- 오른쪽에 있는 검색 상자에
Git을 입력하여 설치된 플러그인을 필터링합니다. - 설치된 플러그인 목록에서 Git plugin이 표시되어 Git 통합이 가능하다는 것을 확인할 수 있습니다.

Git 플러그인이 사용 가능한 것을 확인했으므로, 이제 Git을 사용하는 프로젝트를 생성하는 다음 단계로 진행할 수 있습니다.
프로젝트 생성 및 Git SCM 구성
Git 플러그인이 설치되었으므로 이제 Jenkins 프로젝트를 생성하고 Git 저장소에서 소스 코드를 가져오도록 구성할 수 있습니다.
- 왼쪽 상단의 브레드크럼 네비게이션에서 Dashboard 링크를 클릭하여 메인 Jenkins 대시보드로 돌아갑니다.
- 왼쪽 사이드바에서 New Item을 클릭합니다.
- 항목 이름으로
git-integration-project를 입력합니다. - Freestyle project를 선택합니다.
- OK를 클릭합니다.
그러면 프로젝트 구성 페이지로 이동합니다.
- Source Code Management 섹션으로 스크롤합니다.
- Git 옵션을 선택합니다. 이 옵션이 보이지 않으면 이전 단계에서 Git 플러그인이 올바르게 설치되었는지 확인하십시오.
- Repository URL 필드에 준비된 로컬 Git 저장소의 절대 경로를 입력합니다.
https://github.com/labex-labs/git-playground
- Branch Specifier는 기본값인
*/master로 둡니다. 이는 Jenkins 에게master브랜치를 사용하도록 지시합니다. - 페이지 하단의 Save 버튼을 클릭합니다.

이제 Git 저장소에 연결된 Jenkins 작업을 성공적으로 생성했습니다. 다음 단계에서는 작업이 코드에 대해 수행할 작업을 정의합니다.
빌드 단계 추가 및 수동 빌드 실행
이제 Jenkins 가 코드의 위치를 알게 되었으므로, 해당 코드로 무엇을 해야 할지 알려주어야 합니다. 쉘 명령을 사용하여 빌드 단계를 추가하고 수동으로 빌드를 실행하여 테스트해 보겠습니다.
git-integration-project의 프로젝트 페이지에서 왼쪽 사이드바에 있는 Configure를 클릭합니다.- Build Steps 섹션으로 스크롤합니다.
- Add build step 드롭다운을 클릭하고 Execute shell을 선택합니다.
- Command 텍스트 영역에 다음 빌드 명령을 입력합니다.
echo "Building the project..."
date
echo "Listing files in workspace:"
ls -la
echo "Build complete!"
작업이 실행되면 Jenkins 는 먼저 Git 저장소를 작업 공간 (workspace) 으로 복제한 다음 해당 작업 공간 내에서 이러한 명령을 실행합니다.
- 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 rev-parse --resolve-git-dir /var/jenkins_home/workspace/git-integration-project/.git ## timeout=10
...
[git-integration-project] $ /bin/sh -xe /tmp/jenkins123.sh
+ echo Building the project...
Building the project...
+ date
Mon Jan 1 12:01:00 UTC 2024
+ echo Listing files in workspace:
Listing files in workspace:
+ ls -la
total 24
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 .
drwxr-xr-x 3 jenkins jenkins 4096 Aug 21 10:33 ..
drwxr-xr-x 8 jenkins jenkins 4096 Aug 21 10:33 .git
-rw-r--r-- 1 jenkins jenkins 32 Aug 21 10:33 README.md
-rw-r--r-- 1 jenkins jenkins 15 Aug 21 10:33 file1.txt
-rw-r--r-- 1 jenkins jenkins 15 Aug 21 10:33 file2.txt
+ echo Build complete!
Build complete!
Finished: SUCCESS
SCM 폴링으로 자동 빌드 활성화
수동으로 빌드를 실행하는 것은 테스트에 유용하지만, CI 의 진정한 힘은 자동화에 있습니다. 이 단계에서는 Git 저장소에서 변경 사항이 감지될 때마다 Jenkins 가 자동으로 빌드를 시작하도록 구성합니다.
git-integration-project의 구성 페이지 (Project Page > Configure) 로 다시 이동합니다.- Build Triggers 섹션으로 스크롤합니다.
- Poll SCM 옆의 확인란을 선택합니다.
- Schedule 텍스트 상자가 나타납니다. 이는 cron 구문을 사용하여 Jenkins 가 변경 사항을 저장소에서 얼마나 자주 확인할지 정의합니다. 1 분마다 폴링하려면 다음을 입력합니다.
* * * * *
- Save를 클릭합니다.
원격 GitHub 저장소 (https://github.com/labex-labs/git-playground) 를 사용하고 있으므로 폴링 트리거를 테스트하기 위해 직접 수정할 수는 없습니다. 하지만 SCM 폴링이 어떻게 작동하는지 관찰할 수 있습니다.
- Jenkins UI 로 돌아가
git-integration-project페이지로 이동합니다. - 왼쪽 사이드바에서 Git Polling Log라는 새 옵션을 볼 수 있습니다. 클릭합니다.
- 이 페이지는 폴링 활동을 보여줍니다. 다음과 같은 항목이 표시되어야 합니다.
Started on Aug 21, 2025, 10:36:00 AM
Using strategy: Default
[poll] Last Built Revision: Revision d22f46ba8c2d4e07d773c5126e9c803933eb5898 (refs/remotes/origin/master)
The recommended git tool is: NONE
No credentials specified
> git --version ## timeout=10
> git --version ## 'git version 2.30.2'
> git ls-remote -h -- https://github.com/labex-labs/git-playground ## timeout=10
Found 3 remote heads on https://github.com/labex-labs/git-playground
[poll] Latest remote head revision on refs/heads/master is: d22f46ba8c2d4e07d773c5126e9c803933eb5898 - already built by 1
Done. Took 0.36 sec
No changes
이는 Jenkins 가 매분 원격 저장소에서 변경 사항을 성공적으로 폴링하고 있음을 보여줍니다. 실제 시나리오에서는 새 커밋이 저장소에 푸시될 때 Jenkins 가 자동으로 새 빌드를 트리거합니다.
- 수동 빌드를 트리거하려면 Build Now를 클릭하여 폴링 시스템이 수동 빌드와 어떻게 통합되는지 확인할 수도 있습니다.
요약
이 실습에서는 CI 파이프라인에서 가장 중요한 통합 중 하나인 Jenkins 와 Git 소스 제어 저장소를 연결하는 경험을 쌓았습니다.
다음과 같은 작업을 성공적으로 수행했습니다.
- Jenkins 의 Git 통합 기능을 활성화하는 데 필수적인 Git plugin이 사용 가능한지 확인했습니다.
- Freestyle project를 생성하고 Git 저장소에서 코드를 체크아웃하도록 구성했습니다.
- 체크아웃된 코드에서 쉘 스크립트를 실행하는 build step을 정의했습니다.
- manual build를 실행하여 설정을 확인했습니다.
- Jenkins 가 새 커밋을 자동으로 감지하고 빌드할 수 있도록 하는 Poll SCM을 사용하여 자동 빌드 트리거를 설정했습니다.
이러한 기술은 개발 워크플로우를 자동화하는 데 기본이 되며, Jenkins 를 사용하여 강력하고 효율적인 CI/CD 파이프라인을 구축하기 위한 첫걸음입니다.

