snow · 2026.4.21 04:19 · 조회 2

Jenkins Pipeline 작성하기

Pipeline이란?

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


Declarative vs Scripted

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

Declarative Pipeline 기본 구조

1pipeline {2    agent any3 4    environment {5        APP_NAME = 'my-app'6        DEPLOY_ENV = 'staging'7    }8 9    stages {10        stage('Checkout') {11            steps {12                checkout scm13            }14        }15 16        stage('Build') {17            steps {18                sh 'npm install'19                sh 'npm run build'20            }21        }22 23        stage('Test') {24            steps {25                sh 'npm test'26            }27            post {28                always {29                    junit 'test-results/**/*.xml'30                }31            }32        }33 34        stage('Deploy') {35            when {36                branch 'main'37            }38            steps {39                sh './scripts/deploy.sh'40            }41        }42    }43 44    post {45        success {46            echo '빌드 성공!'47        }48        failure {49            echo '빌드 실패!'50        }51    }52}

주요 지시어(Directive)

agent

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

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

when

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

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

parallel

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

1stage('Parallel Tests') {2    parallel {3        stage('Unit Test') {4            steps { sh 'npm run test:unit' }5        }6        stage('E2E Test') {7            steps { sh 'npm run test:e2e' }8        }9    }10}

Jenkinsfile 저장소 연동

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

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

댓글

아직 댓글이 없습니다.

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