Files
admin-web/Jenkinsfile
T

79 lines
2.1 KiB
Groovy
Raw Normal View History

2026-07-30 20:36:34 +08:00
pipeline {
agent {
label "${env.JOB_BASE_NAME?.endsWith('-dev') ? 'java-dev' : 'java-test'}"
}
2026-07-30 20:36:34 +08:00
2026-08-14 17:45:43 +08:00
environment {
DEVELOPMENT_COMPOSE_FILE = 'docker-compose.development.yml'
2026-08-14 17:45:43 +08:00
}
options {
timestamps()
disableConcurrentBuilds()
}
2026-07-30 20:36:34 +08:00
stages {
stage('确认提交版本') {
2026-07-30 20:36:34 +08:00
steps {
2026-08-14 17:45:43 +08:00
script {
env.IS_DEVELOPMENT = env.JOB_BASE_NAME?.endsWith('-dev') ? 'true' : 'false'
env.SOURCE_TAG = sh(script: 'git rev-parse --short=12 HEAD', returnStdout: true).trim()
}
2026-07-30 20:36:34 +08:00
sh 'git log -1 --oneline'
}
}
stage('构建并部署测试前端') {
2026-08-14 17:45:43 +08:00
when { expression { env.IS_DEVELOPMENT != 'true' } }
steps {
sh '''
set -eu
docker compose -f docker-compose.test.yml build --pull=false
docker compose -f docker-compose.test.yml up -d --remove-orphans
'''
}
}
2026-08-14 17:45:43 +08:00
stage('构建并部署开发前端') {
when { expression { env.IS_DEVELOPMENT == 'true' } }
steps {
sh '''
set -eu
image="admin-web-development:${SOURCE_TAG}"
docker build \
--build-arg VITE_CLIENT_WEB_URL=http://8.163.49.32:9002 \
-t "$image" .
export IMAGE_TAG="$SOURCE_TAG"
docker compose -f "$DEVELOPMENT_COMPOSE_FILE" up -d --remove-orphans --pull never
docker compose -f "$DEVELOPMENT_COMPOSE_FILE" ps
docker compose -f "$DEVELOPMENT_COMPOSE_FILE" exec -T admin-web wget -qO- http://127.0.0.1/healthz
2026-08-14 17:45:43 +08:00
'''
}
}
stage('部署检查') {
2026-08-14 17:45:43 +08:00
when { expression { env.IS_DEVELOPMENT != 'true' } }
steps {
sh '''
set -eu
docker compose -f docker-compose.test.yml ps
docker compose -f docker-compose.test.yml exec -T admin-web wget -qO- http://127.0.0.1/healthz
'''
}
}
2026-07-30 20:36:34 +08:00
}
post {
failure {
2026-08-14 17:45:43 +08:00
sh '''
if [ "${IS_DEVELOPMENT:-false}" = "true" ]; then
docker logs --tail=100 admin-web-development || true
2026-08-14 17:45:43 +08:00
else
docker compose -f docker-compose.test.yml logs --tail=100 || true
fi
'''
}
}
}