젠킨스(Jenkins)에서 빌드 아티팩트를 보관하는 방법은 무엇인가요?
_____A: 빌드 아티팩트는 빌드 과정에서 생성된 결과물로, 예를 들어 컴파일된 바이너리, 라이브러리, 패키지 파일(war, jar, zip 등)이나 로그 파일 등이 포함됩니다. 젠킨스에서는 이 아티팩트를 저장하고 관리할 수 있습니다.
Q: 젠킨스에서 빌드 아티팩트를 보관하려면 어떻게 설정하나요?
A: 젠킨스 빌드 설정에서 ‘빌드 후 조치(Post-build Actions)’ 섹션에 있는 ‘아티팩트 보관(Archive the artifacts)’ 옵션을 사용합니다. 여기서 저장할 파일 패턴(예: /target/*.jar, build/ /*.war)을 지정하면 빌드 후 해당 파일들이 젠킨스 서버에 저장됩니다.
Q: 아티팩트를 보관할 때 파일 경로 패턴은 어떻게 작성해야 하나요?
A: 파일 경로 패턴은 Ant 스타일 글로브 패턴을 사용합니다. 예를 들어, 빌드 폴더 하위의 모든 jar 파일을 저장하려면 ` /*.jar`, 특정 폴더 내 파일을 지정하려면 `target/*.jar`와 같이 작성합니다.
Q: 아티팩트 보관은 어디에 저장되나요?
A: 아티팩트는 젠킨스 마스터 또는 해당 빌드를 수행한 에이전트 워크스페이스의 젠킨스 홈 디렉토리 내 빌드 기록 폴더(jobs/프로젝트명/builds/빌드번호/archive/)에 저장됩니다.
Q: 보관된 아티팩트는 어떻게 접근하나요?
A: 각 빌드 결과 페이지에서 ‘아티팩트’ 섹션에 보관된 파일 목록과 다운로드 링크가 표시됩니다. 이를 통해 웹 인터페이스로 바로 아티팩트를 내려받을 수 있습니다.
Q: 빌드가 많아지면 아티팩트 용량이 커지는데, 어떻게 관리하나요?
A: 젠킨스의 ‘빌드 유효 기간 관리(Build Discarder)’ 설정에서 오래된 빌드 삭제 정책을 설정하면, 자동으로 오래된 빌드와 해당 아티팩트를 제거해 디스크 공간을 절약할 수 있습니다.
Q: 파이프라인 스크립트에서 아티팩트를 보관하려면 어떻게 하나요?
A: 젠킨스 파이프라인에서는 `archiveArtifacts` 단계를 사용합니다. 예를 들어:
```groovy
archiveArtifacts artifacts: 'build/libs/*.jar', fingerprint: true
이렇게 하면 지정한 파일들을 아티팩트로 보관합니다.
Q: 여러 개의 아티팩트를 따로 보관하려면 어떻게 해야 하나요?
A: ‘아티팩트 보관’ 옵션 내 파일 패턴에 쉼표(,)로 여러 경로를 구분하거나 파이프라인에서 여러 번 `archiveArtifacts`를 호출하면 됩니다. 예:
```
target/*.jar, docs/*.pdf
```
Q: 아티팩트에 대해 추가적인 메타데이터(예: 무결성 검사 Fingerprint)를 설정할 수 있나요?
A: 네, ‘아티팩트 보관’ 설정에서 ‘Fingerprinting’을 활성화하면 배포 및 추적에 유용한 무결성 정보가 함께 기록됩니다. 파이프라인 스크립트에서도 `fingerprint: true` 옵션을 사용 가능합니다.
Q: 보관된 아티팩트를 외부 스토리지(예: AWS S3, Nexus)로 전송하는 방법은?
A: 기본 아티팩트 보관 기능은 젠킨스 내부 저장에 한정되므로, 플러그인(예: S3 플러그인, Nexus Artifact Uploader)을 설치하거나 빌드 후 단계에서 스크립트를 이용해 별도로 업로드하는 방식을 사용합니다.
---
요약:
- 젠킨스에서 아티팩트를 보관하려면 ‘빌드 후 조치’에서 ‘아티팩트 보관’ 설정을 사용합니다.
- 파일 패턴으로 저장할 결과물을 지정하고 빌드 결과 페이지에서 다운로드 가능하게 만듭니다.
- 파이프라인에서는 `archiveArtifacts` 명령을 이용합니다.
- 오래된 빌드를 자동 제거하는 정책을 함께 설정하는 것이 좋습니다.
- 플러그인을 통해 외부 저장소 연동도 지원합니다.
아티팩트는 빌드 과정에서 생성된 파일이나 디렉토리를 말하며, 보다 나은 배포와 유지보수를 위해 보관됩니다.
1. Jenkins 프로젝트 구성 1. 프로젝트 생성 : Jenkins 대시보드에서 ‘뉴 아이템(New Item)’을 클릭하고, 프리 스타일 스타일 프로젝트 또는 파이프라인 프로젝트를 생성합니다.
2. 소스 코드 체크아웃 : 소스 코드 관리(SCM) 섹션에서 Git, SVN 등으로 소스 코드를 체크아웃합니다.
2. 빌드 스텝 추가 1. 빌드 스텝 정의 : 필요한 빌드 도구(예: Maven, Gradle, Ant 등)를 설정하고 빌드를 진행합니다.
2. 빌드 아티팩트 생성 : 빌드 과정에서 필요한 파일들이 생성되도록 빌드 스크립트를 작성해야 합니다.
일반적으로 Output 디렉토리 내에서 생성됩니다.
3. 아티팩트 보관 설정 1. 아티팩트 아카이빙 : - `프리 스타일 프로젝트`の場合: - 프로젝트 구성에서 ‘빌드 후 조치(Add post-build action)’ 섹션을 찾습니다.
- ‘아티팩트 아카이브(Archive the artifacts)’를 클릭합니다.
- 아카이브할 파일 패턴을 입력합니다.
예: `build/libs/*.jar` (JAR 파일의 경우). - `파이프라인 프로젝트`の場合: - 스크립트 내에 `archiveArtifacts` 명령을 사용하여 파일을 아카이브합니다.
```groovy pipeline { agent any stages { stage('Build') { steps { // 빌드 명령 } } } post { success { archiveArtifacts artifacts: ' /target/*.jar', fingerprint: true } } } ```
4. 아티팩트 접근 및 다운로드 - Jenkins UI에서 실행된 빌드 결과 페이지로 이동하면, 아카이브된 아티팩트를 확인할 수 있습니다.
- 각 빌드의 "아티팩트" 섹션에서 파일을 다운로드할 수 있으며, 이러한 아티팩트는 저장되어 필요할 때마다 접근이 가능합니다.
5. 보관 정책 - 정기적인 정리 : 서버의 디스크 공간을 관리하기 위해 오래된 아티팩트는 정기적으로 삭제하는 것이 좋습니다.
Jenkins의 ‘유지 관리’ 설정에서 특정 기간 후 아티팩트를 삭제하도록 설정할 수 있습니다.
6. 외부 스토리지 활용 - Jenkins가 기본적으로 제공하는 아카이브 기능 외에도, S3, Nexus, Artifactory 등의 외부 저장소를 활용하여 아티팩트를 보관할 수 있습니다.
이를 통해 장기 보존 및 버전 관리를 할 수 있습니다.
이와 같은 방법으로 Jenkins에서 빌드 아티팩트를 효율적으로 보관하고 관리할 수 있습니다.
작성자:
이다윤 [비회원]
| 작성일자: 1년 전
2025-03-22 15:11:06
조회수: 169 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 169 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.