Last active
April 9, 2024 14:16
-
-
Save siyoungoh/92c0f76b3a3e93669a0f2f985d97942c to your computer and use it in GitHub Desktop.
Jenkins CI/CD 예시
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pipeline { | |
agent any | |
environment { | |
// 환경 변수 설정 | |
DOCKER_IMAGE = 'myapp:latest' | |
DOCKER_REGISTRY = 'myregistry.com' | |
} | |
stages { | |
stage('Checkout') { | |
steps { | |
// Git에서 최신 코드를 체크아웃 | |
checkout scm | |
} | |
} | |
stage('Build') { | |
steps { | |
// 도커 이미지 빌드 | |
script { | |
docker.build("$DOCKER_REGISTRY/$DOCKER_IMAGE") | |
} | |
} | |
} | |
stage('Test') { | |
steps { | |
// 테스트 실행 | |
sh 'echo "Running tests"' | |
// 예를 들어, JUnit 테스트 실행 등 실제 테스트 명령을 여기에 포함 | |
} | |
} | |
stage('Push Image') { | |
steps { | |
script { | |
docker.withRegistry("https://$DOCKER_REGISTRY", 'docker-registry-credentials') { | |
// 빌드된 도커 이미지를 레지스트리에 푸시 | |
docker.image("$DOCKER_REGISTRY/$DOCKER_IMAGE").push() | |
} | |
} | |
} | |
} | |
stage('Deploy') { | |
steps { | |
// 배포 스크립트 실행 | |
script { | |
// SSH 플러그인을 사용하여 배포 서버에 접속, 배포 명령 실행 등 | |
sshPublisher(publishers: [sshPublisherDesc(configName: 'my-deploy-server', transfers: [sshTransfer(execCommand: "docker pull $DOCKER_REGISTRY/$DOCKER_IMAGE && docker run -d --name myapp -p 80:80 $DOCKER_REGISTRY/$DOCKER_IMAGE")])]) | |
} | |
} | |
} | |
} | |
post { | |
always { | |
// 항상 실행: 예를 들어, 빌드 정보 정리 | |
cleanWs() | |
} | |
success { | |
// 성공적인 빌드 후 실행 | |
echo 'Build and deployment successful!' | |
} | |
failure { | |
// 빌드 실패시 실행 | |
echo 'Build or deployment failed.' | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment