젠킨스(Jenkins)에서 태그 기반 빌드를 설정하는 방법은 무엇인가요?
_____태그 기반 빌드는 Git 저장소에서 특정 태그를 기준으로 소스 코드를 빌드하는 작업입니다. 이를 통해 특정 릴리즈 버전이나 마일스톤을 명확히 지정해 빌드할 수 있습니다.
Q2: 젠킨스에서 태그 변경 감지를 어떻게 설정하나요?
- 젠킨스 프로젝트 설정에서 `소스 코드 관리`에 Git 저장소를 등록합니다.
- `브랜치 지정`란에 태그 패턴 (`refs/tags/*`)을 입력해 태그 전체를 감지하거나, 특정 태그명을 지정합니다.
- 빌드 트리거에 `GitHub hook trigger` 혹은 주기적 폴링을 설정하여 태그 생성이나 변경 시 자동 빌드가 되도록 설정합니다.
Q3: 태그 이름을 변수로 받아 빌드에 반영하려면 어떻게 하나요?
- `파이프라인 스크립트`에서 `env.GIT_TAG` 변수 등을 사용해 현재 빌드 중인 태그명을 가져옵니다.
- Declarative Pipeline 예시:
```groovy
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout([$class: 'GitSCM',
branches: [[name: "refs/tags/${env.GIT_TAG}"]],
userRemoteConfigs: [[url: 'https://github.com/yourrepo.git']]])
}
}
stage('Build') {
steps {
echo "Building tag: ${env.GIT_TAG}"
// 빌드 스크립트 실행
}
}
}
}
```
- 혹은 `Git Parameter Plugin`을 사용해 빌드 시작 시 태그를 선택하도록 할 수 있습니다.
Q4: Git Parameter Plugin이 태그 기반 빌드에 유용한 이유는?
Git Parameter Plugin을 사용하면, 사용자에게 젠킨스 빌드 시작 시점에 특정 태그를 선택하도록 UI를 제공합니다. 이를 통해 수동으로 태그를 선택해 빌드를 진행할 수 있어 편리합니다.
- Git SCM 브랜치 필드에 `refs/tags/<태그명>` 또는 와일드카드 `refs/tags/v*` 등으로 특정 태그 패턴을 설정합니다.
- 빌드 트리거에 Git Hook 또는 Poll SCM을 활성화해 태그 푸시 이벤트에 반응하도록 합니다.
Q6: 파이프라인에서 Git 태그 체크아웃 시 주의할 점은?
- 태그는 이동 가능한 ref가 아니므로 checkout 시 detached HEAD 상태가 됩니다.
- 빌드 스크립트에서 이를 감안해 작업해야 하며, 필요 시 별도 브랜치 생성이나 복사 작업을 수행할 수 있습니다.
Q7: 간단한 태그 기반 파이프라인 예시는?
```groovy
pipeline {
agent any
parameters {
string(name: 'TAG_NAME', defaultValue: 'v1.0.0', description: '빌드할 Git 태그명')
}
stages {
stage('Checkout') {
steps {
checkout([$class: 'GitSCM',
branches: [[name: "refs/tags/${params.TAG_NAME}"]],
userRemoteConfigs: [[url: 'https://github.com/yourrepo.git']]])
}
}
stage('Build') {
steps {
echo "Building tag: ${params.TAG_NAME}"
sh './build.sh'
}
}
}
}
```
---
요약:
젠킨스에서 태그 기반 빌드는 Git 저장소의 태그를 브랜치처럼 지정해 빌드하는 방법입니다. SCM 설정에서 `refs/tags/*` 형태의 태그 패턴을 지정하고, 빌드 트리거를 적절히 설정하면 자동 태그 빌드가 가능합니다. 파이프라인에서는 태그명을 변수로 받아 체크아웃 및 빌드에 활용하며, Git Parameter Plugin을 더하면 태그 선택 편의성이 올라갑니다.
이 과정은 소스 코드 관리(SCM)에서 Git을 사용하는 것을 전제로 합니다.
1. Jenkins 설치 및 설정 먼저 Jenkins를 설치하고 기본 설정을 완료합니다.
이 과정이 이미 완료되었으면 다음 단계로 넘어갑니다.
2. GitHub 또는 Git Repository 연결 Jenkins의 대시보드에서 다음과 같이 Git 저장소를 연결합니다: 1. 새 작업 생성 : Jenkins 대시보드에서 "새로운 아이템"을 클릭합니다.
2. 프리 스타일 프로젝트 선택 : 프로젝트 이름을 입력하고 "프리 스타일 프로젝트"를 선택합니다.
3. 소스 코드 관리 설정 : - "소스 코드 관리" 섹션에서 "Git"을 선택합니다.
- Repository URL에 Git 리포지토리의 URL을 입력합니다.
- 필요한 경우 자격 증명을 설정합니다.
3. 태그 기반 빌드 설정 태그 기반으로 빌드할 수 있도록 설정합니다: 1. 빌드 트리거 구성 : - "빌드 유발기" 섹션으로 이동합니다.
- "Poll SCM" 옵션을 선택하고, 주기를 설정합니다.
예를 들어, `H/5 * * * *`는 5분마다 검사합니다.
2. 태그 및 브랜치 설정 : - “고급”을 클릭하여 고급 설정을 펼칩니다.
- "Branches to build" 필드에 `
예를 들어, 모든 태그를 빌드하려면 `*/tags/*`를 입력합니다.
- 또는 특정 태그를 지정할 수 있습니다.
4. 빌드 단계 추가 필요한 빌드 단계를 추가합니다: 1. 빌드 단계 추가 : - "빌드" 섹션으로 이동하여 "Add build step"을 클릭합니다.
- 필요한 빌드 도구(예: Maven, Gradle, Shell scripts 등)를 선택하여 빌드 작업을 정의합니다.
5. 저장 및 실행 모든 설정을 완료한 후 설정을 저장합니다.
그런 다음, 태그를 푸시하거나 Poll SCM 주기에 따라 Jenkins가 태그를 수신하는지 확인합니다.
6. 빌드 확인 - Jenkins 대시보드에서 해당 프로젝트를 클릭하여 빌드 내역과 로그를 확인할 수 있습니다.
- 특정 태그를 커밋하거나 푸시하면, Jenkins가 트리거되어 빌드 과정을 자동으로 실행합니다.
7. (옵션) Webhook 설정 GitHub와 같은 Git 호스팅 서비스에서 Webhook을 설정하면 태그가 푸시될 때마다 Jenkins에 자동으로 빌드를 요청할 수 있습니다.
Git 리포지토리의 설정에서 Webhook을 추가하고 Jenkins의 URL을 지정합니다.
이렇게 설정하면 Jenkins에서 태그 기반으로 빌드를 자동화할 수 있습니다.
추가적인 설정이나 특정 요구사항에 따라 더 많은 플러그인 및 설정을 추가할 수 있습니다.
작성자:
정하윤 [비회원]
| 작성일자: 1년 전
2025-03-22 15:11:14
조회수: 166 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 166 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.