Spring

[Jenkins] jenkins pipline script 작성 예시

IT-PAPA 2023. 4. 21. 06:17
728x90
반응형

pipline 예시 1

pipeline {
    agent any
    
    stages {
        stage('Checkout') {
            steps {
                // Git 리포지토리 체크아웃
                git branch: 'main', url: 'https://github.com/your-repo.git'
            }
        }
        
        stage('Build') {
            steps {
                // 빌드 스텝 수행
                sh 'gradle build'
            }
        }
        
        stage('Docker Build') {
            steps {
                // 도커 이미지 빌드 및 푸시
                sh 'docker build -t your-docker-image .'
                sh 'docker push your-docker-image:latest'
            }
        }
        
        stage('Deploy to Kubernetes') {
            steps {
                // Kubernetes 클러스터 접속
                withKubeConfig(credentialsId: 'your-kubeconfig-credentials') {
                    // Kubernetes 배포
                    sh 'kubectl apply -f kubernetes-deployment.yaml'
                }
            }
        }
        
        stage('Cleanup') {
            steps {
                // 사용한 도커 이미지 삭제
                sh 'docker rmi your-docker-image:latest'
            }
        }
    }
}

위의 예제는 젠킨스 파이프라인의 간단한 구조를 보여줍니다. pipeline 블록 안에 agent를 통해 파이프라인의 실행 에이전트를 설정하고, stages 블록 안에 각각의 단계를 정의합니다. 각 단계는 stage 블록으로 시작하며, 그 안에 필요한 스텝을 정의하여 파이프라인의 실행 흐름을 제어할 수 있습니다.

 

pipline 예시 2

node {
    stage('Checkout') {
        git 'https://github.com/your-repo.git'
    }
    stage('Build') {
        sh 'gradle build'
    }
    stage('Test') {
        sh 'gradle test'
    }
    stage('Deploy') {
        sh 'gradle deploy'
    }
}

위의 예제는 Jenkins에서 파이프라인을 정의하는 스크립트로, node 블록은 빌드를 실행할 노드를 선택하는 부분입니다. stage 블록은 파이프라인의 단계를 정의하는 부분으로, 여러 개의 단계를 순차적으로 정의하여 빌드, 테스트, 배포 등의 작업을 실행할 수 있습니다. sh 명령어는 쉘 스크립트를 실행하는 명령어로, 여기에서는 Gradle 빌드 및 테스트 명령어를 실행하는 예제입니다.

Scripted Pipeline 스크립트는 자유로운 스크립트 형태를 제공하므로, 다양한 로직을 구현할 수 있습니다. Groovy 언어의 문법과 젠킨스에서 제공하는 다양한 빌드 및 배포 관련 함수를 사용하여 자신의 CI/CD 파이프라인을 자유롭게 구성할 수 있습니다. 자세한 내용은 젠킨스 공식 문서를 참조하시기 바랍니다.

 

단계 설명 예제
pipeline 파이프라인 블록을 시작하는 지시자. pipeline { ... }
agent 파이프라인이 실행될 에이전트를 설정하는 지시자. agent any 또는 agent { label 'label-name' }
stages 파이프라인의 단계를 정의하는 블록. stages { ... }
stage 각 단계를 정의하는 블록. stage('Stage-Name') { ... }
steps 각 단계에서 실행될 스텝들을 정의하는 블록. steps { ... }
sh 쉘 스크립트를 실행하는 스텝. sh 'command'
bat Windows에서 배치 스크립트를 실행하는 스텝. bat 'command'
git Git 저장소와 관련된 작업을 수행하는 스텝. git branch: 'main', url: 'https://github.com/your/repo.git'
script Groovy 스크립트를 실행하는 스텝 script { }
when 조건에 따라 실행 여부를 결정하는 디렉티브 when { }
checkout 코드 체크아웃을 수행하는 스텝. checkout scm
input 사용자로부터 입력을 받는 스텝. input message: 'Press OK to continue', submitter: 'user'
timeout 특정 시간 내에 작업이 완료되지 않으면 타임아웃하는 스텝. timeout(time: 5, unit: 'MINUTES') { ... }
parallel 여러 단계를 병렬로 실행하는 블록. parallel { ... }
try-catch 예외 처리를 수행하는 블록. try { ... } catch (Exception e) { ... }
post 파이프라인 종료 후에 실행될 작업을 정의하는 블록. post { ... }

 

 

참고사이트

Pipeline Syntax (jenkins.io)

 

Pipeline Syntax

Scripted Pipeline, like Declarative Pipeline, is built on top of the underlying Pipeline sub-system. Unlike Declarative, Scripted Pipeline is effectively a general-purpose DSL built with Groovy. Most functionality provided by the Groovy language is made av

www.jenkins.io

 

728x90
반응형
LIST