diff --git a/Jenkinsfile b/Jenkinsfile index 42795842d..009d2814e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -6,74 +6,84 @@ pipeline { } environment { - AWS_CREDENTIAL_NAME = "AWSCredentials" - REGION = "ap-northeast-2" - DOCKER_IMAGE_NAME = "std01-spring-petclinic" - ECR_REPOSITORY = "257307634175.dkr.ecr.ap-northeast-2.amazonaws.com" - ECR_DOCKER_IMAGE = "${ECR_REPOSITORY}/${DOCKER_IMAGE_NAME}" - } - - stages { - stage('Git clone') { - steps { - echo 'Git clone' - git url: 'https://github.com/lwj9812/spring-petclinic.git', - branch: 'efficient-webjars' - } - post { - success { - echo 'Git Clone Success!!' - } - failure { - echo 'Git Clone Fail' - } - } + AWS_CREDENTIAL_NAME = "AWSCredentials"pipeline { + agent any + + tools { + jdk "jdk17" + maven "M3" } - stage('Maven Build') { - steps { - echo 'Maven Build' - sh 'mvn -Dmaven.test.failure.ignore=true clean package' - } - post { - success { - junit 'target/surefire-reports/**/*.xml' - } - } - } - - stage ('Docker Image Build') { - steps { - echo 'Docker Image Build' - dir("${env.WORKSPACE}") { - sh """ - docker build -t $ECR_DOCKER_IMAGE:$BUILD_NUMBER . - docker tag $ECR_DOCKER_IMAGE:$BUILD_NUMBER $ECR_DOCKER_IMAGE:latest - """ - } - } - } - - stage ('Push Docker Image to ECR') { - steps { - echo "Push Docker Image to ECR" - script { - sh 'rm -f ~/.dockercfg ~/.docker/config.json || true' - docker.withRegistry("http://${ECR_REPOSITORY}", "ecr:${REGION}:${AWS_CREDENTIAL_NAME}") { - docker.image("${ECR_DOCKER_IMAGE}:${BUILD_NUMBER}").push() - docker.image("${ECR_DOCKER_IMAGE}:latest").push() - } - } - } + environment { + AWS_CREDENTIAL_NAME = "AWSCredentials" + REGION = "ap-northeast-2" + DOCKER_IMAGE_NAME="std01-spring-petclinic" + ECR_REPOSITORY = "257307634175.dkr.ecr.ap-northeast-2.amazonaws.com" + ECR_DOCKER_IMAGE = "${ECR_REPOSITORY}/${DOCKER_IMAGE_NAME}" } - stage('Clean Up Docker Images on Jenkins Server'){ - steps { - echo 'Cleaning up unused Docker images on Jenkins server' - sh "docker image prune -a -f" - } - } - stage('Upload to S3') { + stages { + stage('Git Clone') { + steps { + echo 'Git Clone' + git url: 'https://github.com/lwj9812/spring-petclinic.git', + branch: 'efficient-webjars' + } + post { + success { + echo 'success clone project' + } + failure { + error 'fail clone project' // exit pipeline + } + } + } + stage ('mvn Build') { + steps { + sh 'mvn -Dmaven.test.failure.ignore=true install' + } + post { + success { + junit '**/target/surefire-reports/TEST-*.xml' + } + } + } + stage ('Docker Build') { + steps { + dir("${env.WORKSPACE}") { + sh """ + docker build -t $ECR_DOCKER_IMAGE:$BUILD_NUMBER . + docker tag $ECR_DOCKER_IMAGE:$BUILD_NUMBER $ECR_DOCKER_IMAGE:latest + """ + } + } + } + stage('Push Docker Image') { + steps { + echo "Push Docker Image to ECR" + script{ + // cleanup current user docker credentials + sh 'rm -f ~/.dockercfg ~/.docker/config.json || true' + docker.withRegistry("https://${ECR_REPOSITORY}", "ecr:${REGION}:${AWS_CREDENTIAL_NAME}") { + docker.image("${ECR_DOCKER_IMAGE}:${BUILD_NUMBER}").push() + docker.image("${ECR_DOCKER_IMAGE}:latest").push() + } + + } + } + post { + success { + echo "Push Docker Image success!" + } + } + } + stage('Clean Up Docker Images on Jenkins Server') { + steps { + echo 'Cleaning up unused Docker images on Jenkins server' + sh "docker image prune -f -a" + } + } + stage('Upload to S3') { steps { echo 'Upload to S3' dir("${env.WORKSPACE}") { @@ -85,6 +95,7 @@ pipeline { } } } - - } + + + } }