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 { ... } |
참고사이트
728x90
반응형
LIST
'Spring' 카테고리의 다른 글
JAVA metaspace OOM(Out Of Memory) 현상 원인 및 해결방법 (1) | 2024.05.10 |
---|---|
[JAVA] ant build 작성 방법 다양한 예제 (2) | 2023.12.08 |
[Jenkins] docker 이미지를 nexus3 에 배포 시 오류케이스 (1) | 2023.04.20 |
[Jenkins] jenkins build 시 ./gradlew: Permission denied 오류 해결 (1) | 2023.04.12 |
[Jenkins] jenkins A problem occurred configuring root project 오류 해결 (0) | 2023.04.10 |