snow · 2026.4.21 04:19 · 조회 2
Jenkins Pipeline 작성하기
Pipeline이란?
Pipeline은 코드로 정의하는 CI/CD 자동화 워크플로우입니다. Jenkinsfile이라는 파일로 Git 저장소에 저장되어 버전 관리됩니다.
Declarative vs Scripted
| 구분 | Declarative | Scripted |
|---|---|---|
| 문법 | 구조화된 DSL | Groovy 스크립트 |
| 권장 여부 | ✓ 권장 | 고급 사용자용 |
| 가독성 | 높음 | 낮음 |
| 유연성 | 중간 | 높음 |
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 저장소 연동
- 새 Item → Pipeline 선택
- Pipeline 섹션에서 Pipeline script from SCM 선택
- SCM: Git, Repository URL 입력
- Script Path:
Jenkinsfile(기본값) - 저장
이후 Git push 시 자동으로 Jenkinsfile을 읽어 파이프라인을 실행합니다.
댓글
아직 댓글이 없습니다.
댓글을 작성하려면 로그인이 필요합니다.