Update Jenkinsfile

This commit is contained in:
lwj9812 2024-03-22 12:07:53 +09:00 committed by GitHub
parent a332ddf09d
commit 72cd1612fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

143
Jenkinsfile vendored
View file

@ -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 {
}
}
}
}
}
}