서론
젠킨스 파이프라인은 DevOps 워크플로에서 중요한 구성 요소로, 코드의 빌드, 테스트, 배포를 자동화하여 소프트웨어 개발 프로세스를 효율적으로 관리할 수 있다.
젠킨스 파이프라인
파이프라인(Pipeline)은 작업을 자동화된 일련의 단계로 정의하고 실행하는 프로세스를 말한다. 소프트웨어 개발에서 파이프라인은 주로 코드 빌드(Build), 테스트(Test), 배포(Deploy) 등의 과정을 자동화하여 개발과 배포를 빠르고 효율적으로 수행하는 데 사용된다.
젠킨스 파이프라인은 젠킨스에서 제공하는 플러그인 기반 기능으로, 코드를 통해 자동화된 워크플로를 정의할 수 있다. 이를 통해 단순한 빌드 작업부터 복잡한 CI/CD 프로세스까지 설정이 가능하다.
파이프라인의 장단점
장점
- 코드로 워크플로 정의: 워크플로가 스크립트로 관리되므로 버전 관리 및 이식성이 뛰어나다.
- 복잡한 작업 지원: 분기, 병렬 처리, 조건부 실행 등 고급 작업을 처리할 수 있다.
- 플러그인 확장성: 다양한 플러그인을 활용하여 기능을 확장 가능.
단점
- 학습 곡선: 처음 사용하는 사용자에게는 구문과 개념이 복잡할 수 있다.
- 디버깅 어려움: 스크립트 기반이므로 오류 발생 시 원인을 파악하기 어려울 수 있다.
파이프라인 용어 이해
- Stage: 파이프라인에서 주요 단계를 정의한다.
- Step: 각 단계에서 실행되는 작업을 나타낸다.
- Agent: 파이프라인 작업이 실행될 환경을 지정한다.
- Node: 파이프라인이 실행되는 젠킨스의 실행 단위이다.
- PipeLine: 전체 빌드 프로세스를 정의하는 코드를 뜻한다.
파이프라인 구문
선언형 파이프라인
선언형 파이프라인은 젠킨스 파이프라인을 단순하고 명확하게 정의할 수 있는 구문이다.
pipeline {
agent any // 젠킨스의 모든 에이전트에서 실행할 수 있다.
stages {
stage('Build') { // Bilud 스테이지 블록 정의
steps {
echo 'Building...' // 스텝 정의
}
}
stage('Test') { // Test 스테이지 블록 정의
steps {
echo 'Testing...'
}
}
stage('Deploy') { // Deploy 스테이지 블록 정의
steps {
echo 'Deploying...'
}
}
}
}
스크립트형 파이프라인
스크립트형 파이프라인은 더 높은 유연성을 제공한다.
node { // 모든 에이전트에서 실행할 수 있다.
stage('Build') { // Build 스테이지 블록 정의
echo 'Building...'
}
stage('Test') { // Test 스테이지 블록 정의
echo 'Testing...'
}
stage('Deploy') { // Deploy 스테이지 블록 정의
echo 'Deploying...'
}
}
젠킨스에서 파이프라인 정의
파이프라인 속도/내구성 오버라이드
- pipeline 블록에서 options를 통해 속도와 내구성을 설정할 수 있다.
- PERFORMANCE_OPTIMIZED: 성능에만 최저고하된 가장 빠른 설정, 실행 중인 파이프라인을 저장하려면 클린 셧다운을 해야한다.
- Less durability, a bit faster: 내구성은 낮고, 약간 빠른 설정
- Maximum durability but slowest: 내구성 최대이나, 가장 느린 설정이다.
pipeline {
agent any
options {
durabilityHint 'PERFORMANCE_OPTIMIZED'
}
stages {
stage('Example') {
steps {
echo 'Optimized pipeline'
}
}
}
}
자바 API를 릴리스하는 파이프라인 작업 생성
파이프라인 작업 생성
- 젠킨스 대시보드에서 새 작업(New Item) 클릭.
- 파이프라인 선택 후 작업 이름 입력.
파이프라인 정의
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/username/JavaAPI.git', branch: 'main'
}
}
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
stage('Deploy') {
steps {
sh 'mvn deploy'
}
}
}
}
node {
def mvnHome
stages {
stage('Checking out code') {
branch: 'main', credentialsId:'MyGitSSHCredentials'
git url: 'https://github.com/username/JavaAPI.git'
}
}
stage('Deploying CalculatorAPI on Nexus Repository') {
mvnHome = tool 'MyMaven'
withEnv([MVN_HOME$mvnHome]){
bat '%MVN_HOME%\\bin\\mvn deploy'
}
}
}
}
파이프라인 작업 실행 및 릴리스
작업 실행
- 생성된 파이프라인 작업의 Build Now 버튼을 클릭하여 실행.
- 각 단계의 로그와 상태를 Console Output에서 확인 가능.
릴리스 확인
- 넥서스 리포지터리 또는 배포된 환경에서 자바 API가 제대로 릴리스되었는지 검증.
반응형
'VCS > CICD' 카테고리의 다른 글
젠킨스 분산 빌드 (0) | 2025.01.02 |
---|---|
젠킨스 코드형 파이프라인 이해 (0) | 2025.01.01 |
젠킨스, 메이븐과 넥서스 통합 및 자바 API 릴리스용 프리스타일 작업 생성 (0) | 2024.12.30 |
젠킨스, 메이븐으로 자바 API 프로젝트 준비 (0) | 2024.12.30 |
젠킨스 작업의 이해 (0) | 2024.12.29 |
댓글