기본 Freestyle 프로젝트 구성

JenkinsBeginner
지금 연습하기

소개

Jenkins 에서 기본 Freestyle 프로젝트를 구성하는 실습에 오신 것을 환영합니다. Freestyle 프로젝트는 Jenkins 에서 매우 유연하고 사용하기 쉬운 옵션으로, 모든 유형의 프로젝트에 적합합니다. 웹 기반 그래픽 인터페이스를 통해 빌드 트리거, 빌드 단계 및 빌드 후 조치 (post-build actions) 를 구성할 수 있습니다.

본 실습에서는 다음 사항을 배우게 됩니다.

  • 프로젝트에 셸 명령어 (shell command) 빌드 단계를 추가하는 방법.
  • 트리거를 사용하여 빌드가 자동으로 실행되도록 예약하는 방법.
  • 나중에 사용하기 위해 빌드 아티팩트 (build artifacts) 를 보관하는 방법.
  • 작업 공간 정리 (workspace cleanup) 와 같은 빌드 후 조치를 구성하는 방법.

Jenkins 인스턴스는 이미 실행 중이며, sample-project라는 기본 Freestyle 프로젝트가 생성되어 있습니다. 데스크톱에서 Firefox 브라우저를 열어 Jenkins 웹 인터페이스에 접속할 수 있습니다. 브라우저가 자동으로 http://localhost:8080으로 열리므로 URL 을 수동으로 입력할 필요가 없습니다. 로그인도 필요하지 않습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 95%입니다.학습자들로부터 88%의 긍정적인 리뷰율을 받았습니다.

빌드 단계 추가

이 단계에서는 Freestyle 프로젝트에 빌드 단계를 추가합니다. 빌드 단계는 컴파일, 테스트 실행, 셸 스크립트 실행 등 Jenkins 가 수행할 작업을 정의하는 프로젝트의 핵심 요소입니다.

먼저 프로젝트 구성 페이지로 이동해 보겠습니다.

  1. 데스크톱 인터페이스에서 Firefox 브라우저를 엽니다. 브라우저는 자동으로 http://localhost:8080으로 열리므로 URL 을 수동으로 입력할 필요가 없습니다. 로그인도 필요하지 않습니다.
  2. Jenkins 대시보드에서 sample-project를 볼 수 있습니다. 해당 이름을 클릭하여 프로젝트 페이지로 이동합니다.
  3. 왼쪽 메뉴에서 Configure를 클릭합니다.
Jenkins project page

이제 프로젝트 구성 페이지에 있습니다. 빌드 단계를 추가해 보겠습니다.

  1. Build Steps 섹션까지 아래로 스크롤합니다.
  2. Add build step 드롭다운 버튼을 클릭하고 Execute shell을 선택합니다.
Build Steps section
  1. 텍스트 상자가 나타납니다. Command 상자에 다음 명령어를 입력합니다.
echo "Building the project..."
date
echo "Build complete."
  1. 페이지 하단의 Save 버튼을 클릭합니다.

이제 빌드 단계를 구성했습니다. 빌드를 실행하여 작동하는지 확인해 보겠습니다.

  1. 프로젝트 페이지에서 왼쪽 메뉴의 Build Now를 클릭합니다.
  2. Build History 섹션에 새 빌드가 나타납니다. 빌드 번호 (예: #1) 를 클릭합니다.
  3. 해당 빌드의 왼쪽 메뉴에서 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

트리거로 빌드 예약

이 단계에서는 빌드 트리거를 사용하여 빌드를 자동으로 예약하는 방법을 배웁니다. 이는 지속적 통합 (continuous integration) 의 기본적인 기능으로, 주기적으로 빌드를 실행할 수 있게 해줍니다.

  1. sample-project 구성 페이지 (프로젝트 페이지 > Configure) 로 다시 이동합니다.
  2. Build Triggers 섹션을 찾습니다.
  3. Build periodically 옆의 확인란을 선택합니다.
Build Triggers section
  1. Schedule 텍스트 영역이 나타납니다. 이 필드는 cron 구문을 사용하여 일정을 정의합니다. 구문은 공백으로 구분된 5 개의 필드로 구성됩니다: MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK.
  2. 빌드를 약 1 분마다 실행하려면 Schedule 필드에 다음을 입력합니다.
* * * * *

이 cron 표현식은 "매분 실행"을 의미합니다. Jenkins 는 부하 분산을 위해 H 기호를 지원하지만, H/1 * * * *는 실제로 매분 실행되는 것이 아니라 시간당 한 번 실행됩니다. 실제로 매분 실행하려면 * * * * *를 사용하십시오.

  1. Save를 클릭합니다.

이제 Jenkins 는 약 1 분마다 sample-project에 대한 새 빌드를 자동으로 트리거합니다. 프로젝트 페이지의 Build History를 보면서 이를 관찰할 수 있습니다.

빌드 아티팩트 아카이빙

이 단계에서는 빌드 아티팩트를 아카이빙하는 방법을 배웁니다. 아티팩트는 컴파일된 바이너리나 보고서와 같이 빌드에서 생성된 출력 파일입니다. 아티팩트를 아카이빙하면 빌드 완료 후 다운로드할 수 있습니다.

먼저, 아카이빙할 파일을 생성하도록 빌드 단계를 수정해야 합니다.

  1. sample-project 구성 페이지로 이동합니다.
  2. Build Steps 섹션으로 스크롤하여 Execute shell 명령 상자를 찾습니다.
  3. 스크립트에 새 줄을 추가하여 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 action) 을 구성해 보겠습니다.

  1. Post-build Actions 섹션으로 스크롤합니다.
  2. Add post-build action 드롭다운을 클릭하고 Archive the artifacts를 선택합니다.
Add post-build action dropdown
  1. Files to archive 필드에 아카이빙하려는 파일 이름인 build-info.txt를 입력합니다. **/*.jar와 같은 와일드카드 (wildcard) 를 사용하여 여러 파일을 아카이빙할 수도 있습니다.
  2. Save를 클릭합니다.

이제 Build Now를 클릭하여 새 빌드를 실행합니다. 빌드가 완료되면:

  1. Build History에서 최신 빌드 번호를 클릭합니다.
  2. 빌드 상태 페이지에서 Build Artifacts라는 섹션과 build-info.txt에 대한 링크를 볼 수 있습니다. 이 링크를 클릭하여 파일을 보거나 다운로드할 수 있습니다.
Completed build page

작업 공간 정리 구성

이 마지막 구성 단계에서는 작업 공간을 정리하는 빌드 후 액션 (post-build action) 을 추가합니다. 이는 디스크 공간을 절약하고 각 빌드가 깨끗한 환경에서 시작되도록 하여 이전 빌드에서 생성된 파일과의 간섭을 방지하는 좋은 방법입니다.

  1. sample-project 구성 페이지로 이동합니다.
  2. Post-build Actions 섹션으로 스크롤합니다.
  3. Add post-build action 드롭다운을 클릭하고 Delete workspace when build is done을 선택합니다.
Add post-build action dropdown
  1. Save를 클릭합니다.

이제 sample-project의 각 빌드가 완료된 후 Jenkins 는 작업 공간 디렉터리의 모든 파일을 삭제합니다. 아카이빙된 아티팩트는 별도로 저장되며 작업 공간 정리의 영향을 받지 않습니다. 이를 통해 빌드 아티팩트는 계속 사용할 수 있으며 다음 실행을 위해 빌드 환경을 깨끗하게 유지할 수 있습니다.

요약

이 실습을 완료하신 것을 축하드립니다. Jenkins Freestyle 프로젝트 구성의 기본 사항을 성공적으로 학습했습니다.

이 실습에서는 다음을 연습했습니다.

  • 빌드 단계로 Execute shell 명령 추가.
  • cron 구문을 사용하여 빌드를 주기적으로 예약하는 Build Trigger 설정.
  • 빌드 아티팩트 생성 및 아카이빙.
  • 빌드 후 작업 공간을 삭제하는 Post-build Action 구성.

이러한 기술은 Jenkins 를 사용하여 빌드, 테스트 및 배포 프로세스를 자동화하는 데 필수적입니다. 이제 이러한 개념을 적용하여 자체 CI/CD 파이프라인을 생성하고 관리할 수 있습니다.