Jenkins Pipeline 만들기 (feat. 젠킨스 파이프라인 짧고 굵게 만들기)

2025. 12. 31. 01:12·Infra/Jenkins

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

다 무너진게 보니까 내 집이더라고..

홈서버 백엔드 방치했다가 젠킨스 다 날아간 것도 몰랐다

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
'Infra/Jenkins' 카테고리의 다른 글
  • Jenkins 환경변수 만들기 (feat. Tool type "jdk" does not have an install of "JDK_21" configured)
  • Jenkins 컨테이너 업데이트하는 법 (feat. Docker 젠킨스 업데이트 방법)
  • 젠킨스 Stage View 설치하기 (feat. Jenkins 파이프라인 시각화하기)
  • 젠킨스 외부 접속 속도 엄청 느림 이슈 해결방법 (feat. Jenkins URL)
Ratatou2
Ratatou2
온갖 정보들을 기록해두는 메모보드 블로그
  • Ratatou2
    nak-z
    · Ratatou2 ·
  • 전체
    오늘
    어제
  • 공지사항

    • 블로그 이전 진행 중 (24.11.25 ~)
    • 분류 전체보기 (311) N
      • OS (90)
        • Linux (39)
        • Window (24)
        • Mac (22)
        • Android (5)
      • Infra (88)
        • DevOps (38)
        • Docker (14)
        • Jenkins (12)
        • n8n (14)
        • Nextcloud (8)
        • Rasberry Pi (2)
      • Dev (19)
        • JAVA (7)
        • Python (1)
        • DB (3)
        • Vue (2)
        • AI (6)
        • Git (0)
      • Tools (11) N
      • Study (69)
        • Algorithm (66)
        • CS (3)
      • Game (10)
        • Project Zomboid (9)
        • Don't Starve Together (1)
      • etc (23)
        • Temp (0)
      • 개발 외 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Ratatou2
Jenkins Pipeline 만들기 (feat. 젠킨스 파이프라인 짧고 굵게 만들기)
상단으로

티스토리툴바