snow · 2026.4.21 04:19 · 조회 2

Jenkins Pipeline 작성하기

Pipeline이란?

Pipeline은 코드로 정의하는 CI/CD 자동화 워크플로우입니다. Jenkinsfile이라는 파일로 Git 저장소에 저장되어 버전 관리됩니다.


Declarative vs Scripted

구분DeclarativeScripted
문법구조화된 DSLGroovy 스크립트
권장 여부✓ 권장고급 사용자용
가독성높음낮음
유연성중간높음

Declarative Pipeline 기본 구조

pipeline {
    agent any

    environment {
        APP_NAME = 'my-app'
        DEPLOY_ENV = 'staging'
    }

    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Build') {
            steps {
                sh 'npm install'
                sh 'npm run build'
            }
        }

        stage('Test') {
            steps {
                sh 'npm test'
            }
            post {
                always {
                    junit 'test-results/**/*.xml'
                }
            }
        }

        stage('Deploy') {
            when {
                branch 'main'
            }
            steps {
                sh './scripts/deploy.sh'
            }
        }
    }

    post {
        success {
            echo '빌드 성공!'
        }
        failure {
            echo '빌드 실패!'
        }
    }
}

주요 지시어(Directive)

agent

빌드 실행 환경을 지정합니다.

agent any                          // 어떤 에이전트든 사용
agent none                         // 각 stage에서 개별 지정
agent { label 'linux' }           // 레이블로 특정 에이전트 지정
agent { docker 'node:18-alpine' } // Docker 컨테이너 사용

when

특정 조건에서만 stage를 실행합니다.

when {
    branch 'main'           // main 브랜치일 때
    environment name: 'DEPLOY_ENV', value: 'production'
    expression { return params.DEPLOY == true }
}

parallel

여러 stage를 동시에 실행합니다.

stage('Parallel Tests') {
    parallel {
        stage('Unit Test') {
            steps { sh 'npm run test:unit' }
        }
        stage('E2E Test') {
            steps { sh 'npm run test:e2e' }
        }
    }
}

Jenkinsfile 저장소 연동

  1. 새 ItemPipeline 선택
  2. Pipeline 섹션에서 Pipeline script from SCM 선택
  3. SCM: Git, Repository URL 입력
  4. Script Path: Jenkinsfile (기본값)
  5. 저장

이후 Git push 시 자동으로 Jenkinsfile을 읽어 파이프라인을 실행합니다.

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.