jenkinsfile
This commit is contained in:
@@ -57,11 +57,90 @@ git push
|
||||
|
||||
### 2. Jenkins 서버 (폐쇄망 환경)
|
||||
|
||||
#### Jenkins 파라미터
|
||||
|
||||
파이프라인 실행 시 다음 파라미터를 설정할 수 있습니다:
|
||||
|
||||
| 파라미터 | 타입 | 기본값 | 설명 |
|
||||
|---------|------|--------|------|
|
||||
| SPRING_PROFILES_ACTIVE | String | prod | Spring Profile (dev/prod) |
|
||||
| BATCH_DATE | String | (공백) | Batch 날짜 (YYYY-MM-DD, 공백 = 오늘) |
|
||||
| ADDITIONAL_PARAMS | String | (공백) | 추가 파라미터 (예: limit=100) |
|
||||
| ACTION | Choice | RUN | 실행 모드 (RUN / VERIFY_ONLY) |
|
||||
|
||||
#### 실행 예시
|
||||
|
||||
**1. 기본 실행 (오늘 날짜)**:
|
||||
```
|
||||
ACTION: RUN
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
BATCH_DATE: (공백) ← 자동으로 오늘 날짜 사용
|
||||
ADDITIONAL_PARAMS: (공백)
|
||||
|
||||
→ java -jar generator-dataset-for-training.jar --spring.profiles.active=prod date=2026-02-09
|
||||
```
|
||||
|
||||
**2. 특정 날짜로 실행**:
|
||||
```
|
||||
ACTION: RUN
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
BATCH_DATE: 2024-01-15
|
||||
ADDITIONAL_PARAMS: (공백)
|
||||
|
||||
→ java -jar generator-dataset-for-training.jar --spring.profiles.active=prod date=2024-01-15
|
||||
```
|
||||
|
||||
**3. 오늘 날짜 + 추가 파라미터**:
|
||||
```
|
||||
ACTION: RUN
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
BATCH_DATE: (공백)
|
||||
ADDITIONAL_PARAMS: limit=100 debug=true
|
||||
|
||||
→ java -jar generator-dataset-for-training.jar --spring.profiles.active=prod date=2026-02-09 limit=100 debug=true
|
||||
```
|
||||
|
||||
**4. 개발 환경 테스트**:
|
||||
```
|
||||
ACTION: RUN
|
||||
SPRING_PROFILES_ACTIVE: dev
|
||||
BATCH_DATE: 2024-02-01
|
||||
ADDITIONAL_PARAMS: dryRun=true
|
||||
|
||||
→ java -jar generator-dataset-for-training.jar --spring.profiles.active=dev date=2024-02-01 dryRun=true
|
||||
```
|
||||
|
||||
**5. JAR 검증만 (실행 안 함)**:
|
||||
```
|
||||
ACTION: VERIFY_ONLY
|
||||
→ JAR 파일 존재만 확인하고 종료
|
||||
```
|
||||
|
||||
#### 날짜 파라미터 동작 방식
|
||||
|
||||
**BATCH_DATE 파라미터**:
|
||||
- **비어있음 (기본값)**: Jenkins 서버의 현재 날짜 자동 사용 (YYYY-MM-DD)
|
||||
- **값 입력**: 입력한 날짜 사용 (예: 2024-01-15)
|
||||
|
||||
**예시**:
|
||||
```bash
|
||||
# BATCH_DATE가 비어있으면
|
||||
TODAY=$(date +%Y-%m-%d) # 2026-02-09
|
||||
java -jar app.jar date=2026-02-09
|
||||
|
||||
# BATCH_DATE에 2024-01-15 입력하면
|
||||
java -jar app.jar date=2024-01-15
|
||||
```
|
||||
|
||||
#### Jenkins 파이프라인 단계
|
||||
|
||||
Jenkins는 자동으로:
|
||||
1. Git에서 코드 체크아웃
|
||||
2. JAR 파일 존재 확인
|
||||
3. JAR 파일 정보 출력
|
||||
4. 배포 실행 (Deploy stage에 배포 명령 추가 필요)
|
||||
1. **Environment 설정**: 오늘 날짜 계산 (TODAY 변수)
|
||||
2. **Checkout**: Git에서 코드 체크아웃
|
||||
3. **Verify JAR**: JAR 파일 존재 확인
|
||||
4. **Run JAR** (ACTION=RUN인 경우만):
|
||||
- BATCH_DATE가 비어있으면 TODAY 사용
|
||||
- JAR 실행 with 파라미터
|
||||
|
||||
## 파일 구조
|
||||
|
||||
@@ -90,14 +169,30 @@ out/
|
||||
## Jenkinsfile 구조
|
||||
|
||||
```groovy
|
||||
parameters {
|
||||
string(name: 'SPRING_PROFILES_ACTIVE', defaultValue: 'prod', ...)
|
||||
string(name: 'BATCH_DATE', defaultValue: '', ...)
|
||||
string(name: 'ADDITIONAL_PARAMS', defaultValue: '', ...)
|
||||
choice(name: 'ACTION', choices: ['RUN', 'VERIFY_ONLY'], ...)
|
||||
}
|
||||
|
||||
environment {
|
||||
TODAY = sh(script: "date +%Y-%m-%d", returnStdout: true).trim()
|
||||
}
|
||||
|
||||
stage('Verify JAR') {
|
||||
// JAR 파일 존재 확인
|
||||
// 파일 정보 출력
|
||||
}
|
||||
|
||||
stage('Deploy') {
|
||||
// 배포 명령 실행
|
||||
// 예: scp, ssh, kubectl 등
|
||||
stage('Run JAR') {
|
||||
when {
|
||||
expression { params.ACTION == 'RUN' }
|
||||
}
|
||||
// 날짜 결정: BATCH_DATE가 비어있으면 TODAY 사용
|
||||
def batchDate = params.BATCH_DATE ?: env.TODAY
|
||||
// JAR 실행
|
||||
// java -jar generator-dataset-for-training.jar --spring.profiles.active=prod date=${batchDate} ${ADDITIONAL_PARAMS}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user