Build Job 생성
Dashboard > 새로운 Item 클릭
- Enter an item name :: ${project_name}
- FreeStyle project
OK 클릭
Build Job 설정
General
- GitLab Connection :: gitlab
소스 코드 관리
- Git
- Repositories
- Repository URL :: ${gitlab_url}
- Credentials :: ${gitlab-user-token}
- Branches to build
- Branch Specifier :: */main

Build Steps
Add Build step > Execute shell
#!/bin/bash
set -e
echo "📦 Gradle 빌드 시작"
./gradlew clean build -x test
echo "✅ .jar 생성 확인"
find build/libs -name "*.jar"
빌드 후 조치
빌드 후 조치 추가 > Archive the artifacts
- Files to archive :: build/libs/*.jar, Dockerfile
빌드 후 조치 추가 > Build other projects
- Projects to build :: ${next_project_name}
- Trigger only if build is stable :: check

Image Job 생성
Dashboard > 새로운 Item 클릭
- Enter an item name :: ${project_name}
- FreeStyle project
OK 클릭
Build Job 설정
General
- GitLab Connection :: gitlab
소스 코드 관리
Environment
- Use secret text(s) or file(s) :: check
- Username and password (separated)
- Username Variable :: HARBOR_USERNAME
- Password Variable :: HARBOR_PASSWORD
- Credentials :: Specific credentials
- admin/**(Harbor Registry Login)

Build Steps
Add Build step > Copy artifacts from another project
- Project name :: luna-backend-build
- Which build :: Latest successful build
- Artifacts to copy :: build/libs/*.jar, Dockerfile
- Target directory :: .
- Flatten directories :: check
- Fingerprint Artifacts :: check

Add Build step > Execute shell
#!/bin/bash
set -e
echo "📁 JAR 확인"
ls -l *.jar
REGISTRY="34.64.75.108:5000"
IMAGE_NAME="${REGISTRY}/devops-project/luna-backend:1.0.0"
echo "🔐 Docker 로그인"
echo "$HARBOR_PASSWORD" | docker login "$REGISTRY" -u "$HARBOR_USERNAME" --password-stdin
echo "🐳 Docker 이미지 빌드 시작"
docker build -t $IMAGE_NAME .
echo "✅ Docker 이미지 빌드 완료: $IMAGE_NAME"
빌드 후 조치
빌드 후 조치 추가 > Build other projects
- Projects to build :: ${next_project_name}
- Trigger only if build is stable :: check

Image-push Job 생성
Dashboard > 새로운 Item 클릭
- Enter an item name :: ${project_name}
- FreeStyle project
OK 클릭
Image-push Job 설정
General
- GitLab Connection :: gitlab
소스 코드 관리
Build Steps
Add Build step > Execute shell
#!/bin/bash
set -e
REGISTRY="34.64.75.108:5000"
IMAGE_NAME="${REGISTRY}/devops-project/luna-backend:1.0.0"
echo "☁️ Docker 이미지 푸시"
docker push $IMAGE_NAME
echo "✅ Docker 이미지 푸시 완료"