날아간게 제 집이더라니까요...

홈서버 백엔드 방치했다가 젠킨스 다 날아간 것도 몰랐다
SSD를 512GB에서 1TB로 마이그레이션 할 때, 하나 실수했던듯
중복 디렉토리란 생각에 지웠겠지 뭐...
막상 간만에 백엔드 만지려니 기억이 안나서 포스팅 해둔다
1. 파이프라인 생성

- 젠킨스의 workspace 이름이 파이프라인 이름을 따라가므로 이름을 지어줄 때 공을 좀 들이는게 좋다..
https://ratatou2.tistory.com/23
Jenkins workspace Name 설정 시 주의사항 (feat. Jenkins 빌드 에러)
Jenkins workspace Name은 pipeline Name을 따라간다는 것을 알고 있는가..?전혀 몰랐는데 Jenkins의 workspace 이름은 pipe 이름을 따라간다즉 파이프라인 이름이이런 식이라면git clone을 할 땐, workspace 경로에 파
ratatou2.tistory.com
2. 파이프라인 옵션 선택

- 중간에 필요한, 각자 환경에 맞는 스크립트를 작성하면 된다
- 아래는 내 스크립트 일부 예시
pipeline {
agent any
tools {
// Jenkins에 등록된 JDK 사용 (예: JDK 21)
jdk('JDK_21')
}
stages {
stage('Checkout Source') {
steps {
/*
* GitHub 저장소에서 소스 코드 체크아웃
* - credentialsId: Jenkins에 등록된 GitHub 접근용 Credential
* - 실제 값은 보안상 마스킹 처리
*/
git branch: 'dev',
credentialsId: 'github-credentials',
url: 'https://github.com/your-org/your-repository.git'
}
}
stage('Set Execute Permission') {
steps {
/*
* Gradle Wrapper 실행 권한 부여
* (Linux 환경에서 필수)
*/
sh 'chmod +x lab_backend/gradlew'
}
}
stage('Build Backend (Spring Boot)') {
steps {
dir('lab_backend') {
/*
* Spring Boot 애플리케이션 빌드
* 필요 시 profile 지정 가능
*
* 예)
* sh './gradlew build -Dspring.profiles.active=docker'
*/
sh './gradlew build'
}
}
}
stage('Copy Artifacts to Volume') {
steps {
script {
/*
* Jenkins Workspace 내 빌드 산출물(JAR, 리소스)을
* 외부 볼륨 또는 배포 디렉토리로 복사
*
* 실제 경로는 보안상 일반화 처리
*/
def jarDir = '/jenkins/workspace/<JOB_NAME>/build/libs'
def targetDir = '/deploy/volume/backend'
sh "mkdir -p ${targetDir}"
sh "cp ${jarDir}/*.jar ${targetDir}/"
/*
* Python requirements 파일 등
* 추가 리소스 복사 예시
*/
def pythonRequirement = 'scripts/requirements.txt'
sh "cp ${pythonRequirement} ${targetDir}/PythonScriptRequirements.txt"
}
}
}
}
post {
success {
/*
* 빌드 성공 시 Discord 알림
* Webhook URL은 Jenkins Credential 또는 환경 변수로 관리
*/
discordSend(
title: "[BE] Jenkins CI",
description: "[BE] 백엔드 빌드가 성공했습니다.",
footer: "Spring Boot CI Pipeline",
link: env.BUILD_URL,
result: currentBuild.currentResult,
webhookURL: "REDACTED"
)
}
failure {
/*
* 빌드 실패 시 Discord 알림
*/
discordSend(
title: "[BE] Jenkins CI",
description: "[BE] 백엔드 빌드가 실패했습니다.",
footer: "Spring Boot CI Pipeline",
link: env.BUILD_URL,
result: currentBuild.currentResult,
webhookURL: "REDACTED"
)
}
}
}
- 이제 직접 돌려보면서 콘솔 로그 보고 터지는 곳 있으면 수정해주면서 다듬으면 된다!
반응형
'Infra > Jenkins' 카테고리의 다른 글
| Jenkins 환경변수 만들기 (feat. Tool type "jdk" does not have an install of "JDK_21" configured) (0) | 2026.01.11 |
|---|---|
| Jenkins 컨테이너 업데이트하는 법 (feat. Docker 젠킨스 업데이트 방법) (2) | 2026.01.11 |
| 젠킨스 Stage View 설치하기 (feat. Jenkins 파이프라인 시각화하기) (0) | 2025.03.19 |
| 젠킨스 외부 접속 속도 엄청 느림 이슈 해결방법 (feat. Jenkins URL) (0) | 2025.03.19 |
| 젠킨스 빌드 실패 해결방법 (feat. 권한 및 버전 체크) (0) | 2025.03.19 |
