소개
Jenkins 에서 기본적인 Freestyle 프로젝트를 구성하는 실습에 오신 것을 환영합니다. Freestyle 프로젝트는 Jenkins 에서 매우 유연하고 사용하기 쉬운 옵션으로, 모든 유형의 프로젝트에 적합합니다. 웹 기반 그래픽 인터페이스를 통해 빌드 트리거, 빌드 단계 및 빌드 후 조치를 구성할 수 있습니다.
이번 실습을 통해 다음 내용을 배웁니다:
- 프로젝트에 셸 명령 빌드 단계 추가하기.
- 트리거를 사용하여 빌드가 자동으로 실행되도록 예약하기.
- 나중에 사용할 수 있도록 빌드 아티팩트 보관하기.
- 작업 공간 정리와 같은 빌드 후 조치 구성하기.
Jenkins 인스턴스가 이미 실행 중이며, sample-project라는 기본 Freestyle 프로젝트가 생성되어 있습니다. 데스크톱에서 Firefox 브라우저를 열어 Jenkins 웹 인터페이스에 접속할 수 있습니다. 브라우저는 자동으로 http://localhost:8080으로 열리므로 URL 을 직접 입력할 필요가 없습니다. 별도의 로그인은 필요하지 않습니다.
빌드 단계 추가
이 단계에서는 Freestyle 프로젝트에 빌드 단계를 추가합니다. 빌드 단계는 프로젝트의 핵심으로, 코드 컴파일, 테스트 실행, 셸 스크립트 실행 등 Jenkins 가 수행할 작업을 정의합니다.
먼저 프로젝트 구성 페이지로 이동합니다.
- 데스크톱 인터페이스에서 Firefox 브라우저를 엽니다. 브라우저는 자동으로
http://localhost:8080으로 열립니다. - Jenkins 대시보드에서
sample-project를 확인합니다. 프로젝트 이름을 클릭하여 프로젝트 페이지로 이동합니다. - 왼쪽 메뉴에서 Configure를 클릭합니다.

이제 프로젝트 구성 페이지에 있습니다. 빌드 단계를 추가해 보겠습니다.
- Build Steps 섹션까지 아래로 스크롤합니다.
- Add build step 드롭다운 버튼을 클릭하고 Execute shell을 선택합니다.

- 텍스트 상자가 나타납니다. Command 상자에 다음 명령을 입력합니다:
echo "Building the project..."
date
echo "Build complete."
- 페이지 하단의 Save 버튼을 클릭합니다.
이제 빌드 단계가 구성되었습니다. 빌드를 실행하여 실제로 작동하는지 확인해 보겠습니다.
- 프로젝트 페이지의 왼쪽 메뉴에서 Build Now를 클릭합니다.
- Build History 섹션에 새로운 빌드가 나타납니다. 빌드 번호 (예:
#1) 를 클릭합니다. - 해당 빌드의 왼쪽 메뉴에서 Console Output을 클릭합니다.
추가한 셸 명령의 출력 결과가 표시되며, 빌드 단계가 성공적으로 실행되었음을 확인할 수 있습니다.
Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/sample-project
[sample-project] $ /bin/sh -xe /tmp/jenkins12345.sh
+ echo 'Building the project...'
Building the project...
+ date
Tue Jan 1 12:00:00 UTC 2024
+ echo 'Build complete.'
Build complete.
Finished: SUCCESS
트리거를 사용한 빌드 예약
이 단계에서는 빌드 트리거를 사용하여 빌드를 자동으로 예약하는 방법을 배웁니다. 이는 지속적 통합 (CI) 의 핵심 기능으로, 빌드를 주기적으로 실행할 수 있게 해줍니다.
sample-project구성 페이지 (프로젝트 페이지 > Configure) 로 다시 이동합니다.- Triggers 섹션을 찾습니다.
- Build periodically 옆의 확인란을 선택합니다.

- Schedule 텍스트 영역이 나타납니다. 이 필드는 cron 구문을 사용하여 일정을 정의합니다. 구문은 공백으로 구분된 5 개의 필드 (
MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK) 로 구성됩니다. - 대략 1 분마다 빌드를 실행하려면 Schedule 필드에 다음을 입력합니다:
* * * * *
이 cron 표현식은 "매분 실행"을 의미합니다. Jenkins 는 부하 분산을 위해 H 기호를 지원하지만, H/1 * * * *는 매분이 아니라 시간당 한 번 실행됩니다. 실제로 매분 실행하려면 * * * * *를 사용해야 합니다.
- Save를 클릭합니다.
이제 Jenkins 가 약 1 분마다 sample-project에 대한 새 빌드를 자동으로 트리거합니다. 프로젝트 페이지의 Build History를 확인하여 이를 관찰할 수 있습니다.
빌드 아티팩트 보관
이 단계에서는 빌드 아티팩트를 보관하는 방법을 배웁니다. 아티팩트는 컴파일된 바이너리나 보고서와 같이 빌드 과정에서 생성된 출력 파일입니다. 이를 보관하면 빌드가 완료된 후 다운로드할 수 있습니다.
먼저, 보관할 파일을 생성하도록 빌드 단계를 수정해야 합니다.
sample-project구성 페이지로 이동합니다.- Build Steps 섹션으로 스크롤하여 Execute shell 명령 상자를 찾습니다.
- 스크립트에
build-info.txt라는 파일을 생성하는 새 줄을 추가합니다.$BUILD_NUMBER는 현재 빌드 번호를 담고 있는 Jenkins 제공 환경 변수입니다.
echo "Building the project..."
date
echo "Build complete."
echo "This artifact is from build #$BUILD_NUMBER" > build-info.txt
다음으로, 이 파일을 보관하기 위한 빌드 후 조치를 구성합니다.
- Post-build Actions 섹션으로 아래로 스크롤합니다.
- Add post-build action 드롭다운을 클릭하고 Archive the artifacts를 선택합니다.

- Files to archive 필드에 보관할 파일 이름인
build-info.txt를 입력합니다.**/*.jar와 같은 와일드카드를 사용하여 여러 파일을 보관할 수도 있습니다. - Save를 클릭합니다.

이제 Build Now를 클릭하여 새 빌드를 실행합니다. 빌드가 완료되면:
- Build History에서 최신 빌드 번호를 클릭합니다.
- 빌드 상태 페이지에
build-info.txt링크가 포함된 Build Artifacts 섹션이 표시됩니다. 클릭하여 파일을 보거나 다운로드할 수 있습니다.

작업 공간 정리 구성
마지막 구성 단계에서는 작업 공간을 정리하기 위한 빌드 후 조치를 추가합니다. 이는 디스크 공간을 절약하고 각 빌드가 깨끗한 환경에서 시작되도록 하여 이전 빌드에서 생성된 파일로 인한 간섭을 방지하는 좋은 습관입니다.
sample-project구성 페이지로 이동합니다.- Post-build Actions 섹션으로 아래로 스크롤합니다.
- Add post-build action 드롭다운을 클릭하고 Delete workspace when build is done을 선택합니다.

- Save를 클릭합니다.

이제 sample-project의 각 빌드가 완료되면 Jenkins 가 작업 공간 디렉터리의 모든 파일을 삭제합니다. 보관된 아티팩트는 별도로 저장되므로 작업 공간 정리의 영향을 받지 않습니다. 이를 통해 빌드 아티팩트는 유지하면서 다음 실행을 위해 빌드 환경을 깨끗하게 유지할 수 있습니다.
요약
이번 실습을 성공적으로 마친 것을 축하합니다. Jenkins Freestyle 프로젝트를 구성하는 기본 사항을 성공적으로 배웠습니다.
이번 실습에서 다룬 내용은 다음과 같습니다:
- 빌드 단계로 Execute shell 명령 추가하기.
- cron 구문을 사용하여 주기적으로 빌드를 예약하는 Build Trigger 설정하기.
- 빌드 아티팩트 생성 및 보관하기.
- 빌드 후 작업 공간을 삭제하는 Post-build Action 구성하기.
이러한 기술은 Jenkins 를 사용하여 빌드, 테스트 및 배포 프로세스를 자동화하는 데 필수적입니다. 이제 이러한 개념을 적용하여 자신만의 CI/CD 파이프라인을 만들고 관리할 수 있습니다.

