mirror of
https://github.com/huge-dream/django-vue3-admin.git
synced 2026-09-23 13:13:07 +00:00
61 lines
1.8 KiB
Groovy
61 lines
1.8 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
HARBOR_URL = '192.168.80.90:8090'
|
|
HARBOR_PROJECT = 'pis'
|
|
IMAGE_NAME = 'pis-web'
|
|
CREDENTIALS_ID = 'harbor-credentials'
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Build Image') {
|
|
steps {
|
|
script {
|
|
def imageTag = "${HARBOR_URL}/${HARBOR_PROJECT}/${IMAGE_NAME}:${BUILD_NUMBER}"
|
|
env.IMAGE_TAG = imageTag
|
|
sh """
|
|
docker build -f web/Dockerfile \
|
|
-t ${imageTag} .
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Push to Harbor') {
|
|
steps {
|
|
script {
|
|
withCredentials([usernamePassword(
|
|
credentialsId: CREDENTIALS_ID,
|
|
usernameVariable: 'HARBOR_USER',
|
|
passwordVariable: 'HARBOR_PASS'
|
|
)]) {
|
|
sh """
|
|
echo ${HARBOR_PASS} | docker login ${HARBOR_URL} -u ${HARBOR_USER} --password-stdin
|
|
docker push ${IMAGE_TAG} || true
|
|
docker tag ${IMAGE_TAG} ${HARBOR_URL}/${HARBOR_PROJECT}/${IMAGE_NAME}:latest
|
|
docker push ${HARBOR_URL}/${HARBOR_PROJECT}/${IMAGE_NAME}:latest || true
|
|
docker logout ${HARBOR_URL}
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
failure {
|
|
echo "Frontend Pipeline failed! Check Jenkins logs."
|
|
}
|
|
success {
|
|
echo "Frontend image pushed to Harbor: ${IMAGE_TAG}"
|
|
}
|
|
}
|
|
}
|