pipeline {agent anyenvironment {CODE_DIR = "/jenkins_data/springboot_test"DATE = new Date().format('YYYYMMddHHmmss')TAG = "${DATE}"IMAGE_NAME = 'springtest'IMAGE_NAME_ALIYUN = "registry.cn-shenzhen.aliyuncs.com/hxlk8s/${IMAGE_NAME}:${TAG}"MYPROJ_DIR="/var/lib/jenkins/workspace/dockertest/"MYPROJ_FILENAME="demo-1.0-SNAPSHOT.jar"}stages {stage('Initialization'){steps{script{currentBuild.displayName='dev'currentBuild.description="mytest "}}}stage('清理并创建目录') {steps {echo "开始清理旧目录:${CODE_DIR}"sh "rm -rf ${CODE_DIR} || true"echo "旧目录清理完成,开始创建新目录:${CODE_DIR}"sh "mkdir -p ${CODE_DIR}"echo "新目录创建完成:${CODE_DIR}"}}stage('拉取代码') {steps {echo "进入目录:${CODE_DIR},开始拉取Git代码"// dir步骤:切换到指定目录执行后续操作(相当于cd ${CODE_DIR})dir("${CODE_DIR}") {// 拉取Git代码git(url: "http://192.168.1.105/devops/springboot.git",branch: "master",)echo "Git代码拉取完成,当前目录文件列表:"// 查看目录内容,验证代码是否拉取成功sh "ls -l"sh "pwd"}}}stage('maven打包') {steps {echo "进入代码目录打包:${CODE_DIR}"dir("${CODE_DIR}") {sh 'mvn clean package'}}}stage('拷贝打包文件') {steps {echo "进入代码目录打包:${CODE_DIR}"dir("${CODE_DIR}/target/"){sh "cp ${MYPROJ_FILENAME} ${MYPROJ_DIR}" }}}stage('Build Docker Image') {steps {dir("${MYPROJ_DIR}"){script {docker.build("${IMAGE_NAME_ALIYUN}")}}}}stage('Test Image') {steps {script {// 运行Docker容器进行测试docker.image("${IMAGE_NAME_ALIYUN}").inside {sh 'echo "Running tests inside the container"'// 运行测试脚本
}}}}stage('Deploy') {steps {script {// 使用Docker推送镜像到Docker Hubdocker.withRegistry('https://registry.cn-shenzhen.aliyuncs.com', 'aliyun-hub-credentials') {docker.image("${IMAGE_NAME_ALIYUN}").push()}}}} }
}