Преглед на файлове

来号吧迁移测试环境

luofuwen преди 7 часа
родител
ревизия
fd73d46501

+ 398 - 321
.drone.yml

@@ -389,402 +389,479 @@ trigger:
   event: [ push ]
   branch: [ release-basic ]
 #############################################################################################
+#                                                                                           #
+#                                                                                           #
+#                                                                                           #
+#                                                                                           #
+#                                                                                           #
+#############################################################################################
 # 测试分支打包
-
-# 1.lhb-gateway-test
+# 1.打包构建test-lhb-gateway
 ---
 kind: pipeline
 type: docker
-name: lhb-gateway-test
+name: test-lhb-gateway
 
-volumes: # 声明数据卷
-  - name: mvn_repo # 数据卷名称
-    # Host Volume, 挂载到宿主机上的卷轴
+# 定义所有Volume映射
+volumes:
+  - name: mvn_repo
     host:
-      # 宿主机的绝对路径
-      path: /home/ABServer/cache/mvn_repo
+      path: /home/ABServer/drone/cache/mvn_repo
   - name: mvn_config
     host:
-      path: /home/ABServer/config/mvn/
-  - name: targetDir
+      path: /home/ABServer/drone/config/mvn
+  - name: build-artifacts
+    host:
+      path: /home/ABServer/drone/webroot/test-lhb-gateway
+  - name: dockerfile-source
+    host:
+      path: /home/ABServer/drone/config/docker
+  - name: timezone
     host:
-      path: /lhb-gateway
+      path: /etc/localtime
+  - name: docker-socket
+    host:
+      path: /var/run/docker.sock
+  - name: delpoyment
+    host:
+      path: /home/ABServer/drone/config/shell
 
 clone:
-  disable: false # 启用代码拉取
+  disable: false
 
 steps:
+  # 阶段1: Maven构建
   - name: build-project
     image: maven:3.9.4-amazoncorretto-17
     pull: if-not-exists
-    depends_on: [clone] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: mvn_repo # 数据卷名称
-        path: /usr/share/maven/repo # 容器内目录 绝对路径
-      - name: targetDir
-        path: /drone/src/dist/
+    volumes:
+      - name: mvn_repo
+        path: /usr/share/maven/repo
       - name: mvn_config
-        path: /usr/share/maven/conf/
-    commands: # 执行命令
-      - rm -rf /drone/src/dist/*
+        path: /usr/share/maven/conf
+    commands:
       - mvn clean package -Dmaven.test.skip=true -P test
-      - cp /drone/src/lhb-gateway/target/*.jar /drone/src/dist/ && cp -r /drone/src/lhb-gateway/target/lib /drone/src/dist/ && cp -r /drone/src/lhb-gateway/target/config /drone/src/dist/ # 复制文件
-    when:
-      status:
-        - success # 当前步骤成功时执行
-  - name: scp-project
-    image: appleboy/drone-scp
-    pull: if-not-exists
-    depends_on: [build-project] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: targetDir # 数据卷名称
-        path: /lhb-gateway # 容器内目录 绝对路径
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      target: /home/ABServer/deploy-ready/
-      source:
-        - echo ====开始拷贝=======
-        - /lhb-gateway/*.jar
-        - /lhb-gateway/lib
-        - /lhb-gateway/config
-        - echo ====结束拷贝=======
-      when:
-        status:
-          - success # 当前步骤成功时执行
-
-  - name: deploy-project
-    image: appleboy/drone-ssh
-    pull: if-not-exists
-    depends_on: [scp-project] # 依赖的步骤
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      script:
-        - echo ====开始部署=======
-        - cd /home/ABServer/
-        - cp -r /home/ABServer/deploy-ready/lhb-gateway /home/ABServer/webroot/
-        - docker stop lhb-gateway && docker rm lhb-gateway && docker-compose up -d lhb-gateway
-        # - docker restart nodeServer1
-        - echo ====部署成功=======
+      - echo "===== 构建产物验证 ====="
+      - ls -l lhb-gateway/target/*.jar
+      - '[ -d lhb-gateway/target/lib ] || exit 1'
+      - '[ -d lhb-gateway/target/config ] || exit 1'
+
+  # 阶段2: 准备Docker上下文
+  - name: prepare-docker-context
+    image: alpine:3.21.3
+    depends_on: [ build-project ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: dockerfile-source
+        path: /dockerfiles
+    commands:
+      - rm -rf /context/*
+      - cp -v lhb-gateway/target/*.jar /context/
+      - cp -rv lhb-gateway/target/lib /context/
+      - cp -rv lhb-gateway/target/config /context/
+      - cp /dockerfiles/template-test.dockerfile /context/Dockerfile
+      - sed -i 's/{Xms}/512m/g' /context/Dockerfile
+      - sed -i 's/{Xmx}/512m/g' /context/Dockerfile
+      - sed -i 's/{ImageName}/lhb-gateway/g' /context/Dockerfile
+      - echo -e "*\n!*.jar\n!lib/\n!config/\n!Dockerfile" > /context/.dockerignore
+      - ls -alR /context
+
+  # 阶段3: 构建并推送镜像
+  - name: docker-build-push
+    image: docker:24.0-cli
+    depends_on: [ prepare-docker-context ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: timezone
+        path: /etc/localtime
+      - name: docker-socket
+        path: /var/run/docker.sock
+      - name: delpoyment
+        path: /home
+    environment:
+      HARBOR_USER:
+        from_secret: harbor_robot
+      HARBOR_PASS:
+        from_secret: harbor_token
+    commands:
+      - cd /context
+      - TAG=test-$(date +%Y%m%d%H%M%S)
+      - echo "$TAG" > /home/TAG.txt
+      - docker login -u "$HARBOR_USER" -p "$HARBOR_PASS" harbor.kexiaoshuang.com
+      - docker build -t "harbor.kexiaoshuang.com/test/lhb-gateway:$TAG" .
+      - docker push "harbor.kexiaoshuang.com/test/lhb-gateway:$TAG"
+      - docker rmi "harbor.kexiaoshuang.com/test/lhb-gateway:$TAG"
+
+  # 阶段四:测试环境部署服务
+  - name: trigger-deploy
+    image: curlimages/curl:latest
+    depends_on: [ docker-build-push ]
+    volumes:
+      - name: delpoyment
+        path: /shared
+    commands:
+      - TAG=$(cat /shared/TAG.txt)
+      - echo "TAG=$TAG"
+      - cd /shared
+      - sh /shared/trigger-deploy.sh $TAG lhb-gateway
+
 
 trigger:
-  branch:
-    include:
-      - test-gateway
-  event:
-    include:
-      - pull_request
-      - push
-############################################################################################
+  event: [ push ]
+  branch: [ test-gateway-new ]
+
+#########################################################################################################
+#2.打包构建test-lhb-quartz
 
 ---
 kind: pipeline
 type: docker
-name: lhb-quartz-test
+name: test-lhb-quartz
 
-volumes: # 声明数据卷
-  - name: mvn_repo # 数据卷名称
-    # Host Volume, 挂载到宿主机上的卷轴
+volumes:
+  - name: mvn_repo
     host:
-      # 宿主机的绝对路径
-      path: /home/ABServer/cache/mvn_repo
+      path: /home/ABServer/drone/cache/mvn_repo
   - name: mvn_config
     host:
-      path: /home/ABServer/config/mvn/
-  - name: targetDir
+      path: /home/ABServer/drone/config/mvn
+  - name: build-artifacts
+    host:
+      path: /home/ABServer/drone/webroot/test-lhb-quartz
+  - name: dockerfile-source
+    host:
+      path: /home/ABServer/drone/config/docker
+  - name: timezone
     host:
-      path: /lhb-quartz
+      path: /etc/localtime
+  - name: docker-socket
+    host:
+      path: /var/run/docker.sock
+  - name: delpoyment
+    host:
+      path: /home/ABServer/drone/config/shell
 
 clone:
-  disable: false # 启用代码拉取
+  disable: false
 
 steps:
+  # 阶段1: Maven构建
   - name: build-project
     image: maven:3.9.4-amazoncorretto-17
     pull: if-not-exists
-    depends_on: [clone] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: mvn_repo # 数据卷名称
-        path: /usr/share/maven/repo # 容器内目录 绝对路径
-      - name: targetDir
-        path: /drone/src/dist/
+    volumes:
+      - name: mvn_repo
+        path: /usr/share/maven/repo
       - name: mvn_config
-        path: /usr/share/maven/conf/
-    commands: # 执行命令
-      - rm -rf /drone/src/dist/*
+        path: /usr/share/maven/conf
+    commands:
       - mvn clean package -Dmaven.test.skip=true -P test
-      - cp /drone/src/lhb-quartz/target/*.jar /drone/src/dist/ && cp -r /drone/src/lhb-quartz/target/lib /drone/src/dist/ && cp -r /drone/src/lhb-quartz/target/config /drone/src/dist/ # 复制文件
-    when:
-      status:
-        - success # 当前步骤成功时执行
-  - name: scp-project
-    image: appleboy/drone-scp
-    pull: if-not-exists
-    depends_on: [build-project] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: targetDir # 数据卷名称
-        path: /lhb-quartz # 容器内目录 绝对路径
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      target: /home/ABServer/deploy-ready/
-      source:
-        - echo ====开始拷贝=======
-        - /lhb-quartz/*.jar
-        - /lhb-quartz/lib
-        - /lhb-quartz/config
-        - echo ====结束拷贝=======
-      when:
-        status:
-          - success # 当前步骤成功时执行
-
-  - name: deploy-project
-    image: appleboy/drone-ssh
-    pull: if-not-exists
-    depends_on: [scp-project] # 依赖的步骤
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      script:
-        - echo ====开始部署=======
-        - cd /home/ABServer/
-        - rm -rf /home/ABServer/webroot/lhb-quartz/*
-        - cp -r /home/ABServer/deploy-ready/lhb-quartz /home/ABServer/webroot/
-        - docker restart lhb-quartz
-        - rm -rf /home/ABServer/deploy-ready/lhb-quartz/*
-        # - docker restart nodeServer1
-        - echo ====部署成功=======
+      - echo "===== 构建产物验证 ====="
+      - ls -l lhb-quartz/target/*.jar
+      - '[ -d lhb-quartz/target/lib ] || exit 1'
+      - '[ -d lhb-quartz/target/config ] || exit 1'
+
+  # 阶段2: 准备Docker上下文(关键修正部分)
+  - name: prepare-docker-context
+    image: alpine:3.21.3
+    depends_on: [ build-project ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: dockerfile-source
+        path: /dockerfiles
+    commands:
+      - rm -rf /context/*
+      - cp -v lhb-quartz/target/*.jar /context/
+      - cp -rv lhb-quartz/target/lib /context/
+      - cp -rv lhb-quartz/target/config /context/
+      - cp /dockerfiles/template-test.dockerfile /context/Dockerfile
+      - sed -i 's/{Xms}/256m/g' /context/Dockerfile
+      - sed -i 's/{Xmx}/256m/g' /context/Dockerfile
+      - sed -i 's/{ImageName}/lhb-quartz/g' /context/Dockerfile
+      - echo -e "*\n!*.jar\n!lib/\n!config/\n!Dockerfile" > /context/.dockerignore
+      - echo "=============构建上下文文件列表==============="
+      - ls -alR /context
+
+  # 阶段3: 构建并推送镜像
+  - name: docker-build-push
+    image: docker:24.0-cli
+    depends_on: [ prepare-docker-context ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: timezone
+        path: /etc/localtime
+      - name: docker-socket
+        path: /var/run/docker.sock
+      - name: delpoyment
+        path: /home
+    environment:
+      HARBOR_USER:
+        from_secret: harbor_robot
+      HARBOR_PASS:
+        from_secret: harbor_token
+    commands:
+      - cd /context
+      - TAG=test-$(date +%Y%m%d%H%M%S)
+      - echo "$TAG" > /home/TAG.txt
+      - docker login -u "$HARBOR_USER" -p "$HARBOR_PASS" harbor.kexiaoshuang.com
+      - docker build -t "harbor.kexiaoshuang.com/test/lhb-quartz:$TAG" .
+      - docker push "harbor.kexiaoshuang.com/test/lhb-quartz:$TAG"
+      - docker rmi "harbor.kexiaoshuang.com/test/lhb-quartz:$TAG"
+
+  # 阶段四:测试环境部署服务
+  - name: trigger-deploy
+    image: curlimages/curl:latest
+    depends_on: [ docker-build-push ]
+    volumes:
+      - name: delpoyment
+        path: /shared
+    commands:
+      - TAG=$(cat /shared/TAG.txt)
+      - echo "TAG=$TAG"
+      - cd /shared
+      - sh /shared/trigger-deploy.sh $TAG lhb-quartz
+
 
 trigger:
-  branch:
-    include:
-      - test-quartz
-  event:
-    include:
-      - pull_request
-      - push
-
-############################################################################################
+  event: [ push ]
+  branch: [ test-quartz-new ]
+
+###########################################################################################################
+# 3.打包构建test-lhb-system
 ---
 kind: pipeline
 type: docker
-name: lhb-system-test
+name: test-lhb-system
 
-volumes: # 声明数据卷
-  - name: mvn_repo # 数据卷名称
-    # Host Volume, 挂载到宿主机上的卷轴
+# 定义所有 Volume 映射
+volumes:
+  - name: mvn_repo
     host:
-      # 宿主机的绝对路径
-      path: /home/ABServer/cache/mvn_repo
+      path: /home/ABServer/drone/cache/mvn_repo
   - name: mvn_config
     host:
-      path: /home/ABServer/config/mvn/
-  - name: targetDir
+      path: /home/ABServer/drone/config/mvn
+  - name: build-artifacts  # 构建产物临时目录
+    host:
+      path: /home/ABServer/drone/webroot/test-lhb-system
+  - name: dockerfile-source
+    host:
+      path: /home/ABServer/drone/config/docker
+  - name: timezone
     host:
-      path: /lhb-system
+      path: /etc/localtime
+  - name: docker-socket
+    host:
+      path: /var/run/docker.sock
+  - name: delpoyment
+    host:
+      path: /home/ABServer/drone/config/shell
 
 clone:
-  disable: false # 启用代码拉取
+  disable: false
 
 steps:
+  # 阶段1: Maven 构建
   - name: build-project
     image: maven:3.9.4-amazoncorretto-17
     pull: if-not-exists
-    depends_on: [clone] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: mvn_repo # 数据卷名称
-        path: /usr/share/maven/repo # 容器内目录 绝对路径
-      - name: targetDir
-        path: /drone/src/lhb/dist/
+    volumes:
+      - name: mvn_repo
+        path: /usr/share/maven/repo
       - name: mvn_config
-        path: /usr/share/maven/conf/
-    commands: # 执行命令
-      - rm -rf /drone/src/lhb/dist/*
+        path: /usr/share/maven/conf
+    commands:
       - mvn clean package -Dmaven.test.skip=true -P test
-      - cp /drone/src/lhb-system/lhb-system-biz/target/*.jar /drone/src/lhb/dist/ && cp -r /drone/src/lhb-system/lhb-system-biz/target/lib /drone/src/lhb/dist/ && cp -r /drone/src/lhb-system/lhb-system-biz/target/config /drone/src/lhb/dist/ # 复制文件
-    when:
-      status:
-        - success # 当前步骤成功时执行
-  - name: scp-project
-    image: appleboy/drone-scp
-    pull: if-not-exists
-    depends_on: [build-project] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: targetDir # 数据卷名称
-        path: /lhb-system # 容器内目录 绝对路径
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      target: /home/ABServer/deploy-ready/
-      source:
-        - echo ====开始拷贝=======
-        - /lhb-system/*.jar
-        - /lhb-system/lib
-        - /lhb-system/config
-        - echo ====结束拷贝=======
-      when:
-        status:
-          - success # 当前步骤成功时执行
-
-  - name: deploy-project
-    image: appleboy/drone-ssh
-    pull: if-not-exists
-    depends_on: [scp-project] # 依赖的步骤
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      script:
-        - echo ====开始部署=======
-        - cd /home/ABServer/
-        - rm -rf /home/ABServer/webroot/lhb-system/*
-        - cp -r /home/ABServer/deploy-ready/lhb-system /home/ABServer/webroot/
-        - docker stop lhb-system && docker rm lhb-system && docker-compose up -d lhb-system
-        - rm -rf /home/ABServer/deploy-ready/lhb-system/*
-        # - docker restart nodeServer1
-        - echo ====部署成功=======
+      - echo "===== 构建产物生成验证 ====="
+      - ls -l lhb-system/lhb-system-biz/target/*.jar
+      - '[ -d lhb-system/lhb-system-biz/target/lib ] || exit 1'
+      - '[ -d lhb-system/lhb-system-biz/target/config ] || exit 1'
+
+  # 阶段2: 准备 Docker 构建上下文
+  - name: prepare-docker-context
+    image: alpine:3.21.3
+    depends_on: [ build-project ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: dockerfile-source
+        path: /dockerfiles
+    commands:
+      - rm -rf /context/*
+      - cp -v lhb-system/lhb-system-biz/target/*.jar /context/
+      - cp -rv lhb-system/lhb-system-biz/target/lib /context/
+      - cp -rv lhb-system/lhb-system-biz/target/config /context/
+      - cp /dockerfiles/template-biz-test.dockerfile /context/Dockerfile
+      - sed -i 's/{Xms}/512m/g' /context/Dockerfile
+      - sed -i 's/{Xmx}/512m/g' /context/Dockerfile
+      - sed -i 's/{ImageName}/lhb-system/g' /context/Dockerfile
+      - echo -e "*\n!*.jar\n!lib/\n!config/\n!Dockerfile" > /context/.dockerignore
+      - echo "===== 构建上下文文件列表 ====="
+      - ls -laR /context
+
+  # 阶段3: 构建并推送镜像
+  - name: docker-build-push
+    image: docker:24.0-cli
+    depends_on: [ prepare-docker-context ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: timezone
+        path: /etc/localtime
+      - name: docker-socket
+        path: /var/run/docker.sock
+      - name: delpoyment
+        path: /home
+    environment:
+      HARBOR_USER:
+        from_secret: harbor_robot
+      HARBOR_PASS:
+        from_secret: harbor_token
+    commands:
+      - cd /context
+      - TAG=test-$(date +%Y%m%d%H%M%S)
+      - echo "$TAG" > /home/TAG.txt
+      - docker login -u "$HARBOR_USER" -p "$HARBOR_PASS" harbor.kexiaoshuang.com
+      - docker build -t "harbor.kexiaoshuang.com/test/lhb-system:$TAG" .
+      - docker push "harbor.kexiaoshuang.com/test/lhb-system:$TAG"
+      - docker rmi "harbor.kexiaoshuang.com/test/lhb-system:$TAG"
+
+  # 阶段四:测试环境部署服务
+  - name: trigger-deploy
+    image: curlimages/curl:latest
+    depends_on: [ docker-build-push ]
+    volumes:
+      - name: delpoyment
+        path: /shared
+    commands:
+      - TAG=$(cat /shared/TAG.txt)
+      - echo "TAG=$TAG"
+      - cd /shared
+      - sh /shared/trigger-deploy.sh $TAG lhb-system
 
 trigger:
-  branch:
-    include:
-      - test-system
-  event:
-    include:
-      - pull_request
-      - push
-
-############################################################################################
+  event: [ push ]
+  branch: [ test-system-new ]
+
+
+##########################################################################################################
+# 4.打包构建test-lhb-basic
+
 ---
 kind: pipeline
 type: docker
-name: lhb-basic-test
+name: test-lhb-basic
 
-volumes: # 声明数据卷
-  - name: mvn_repo # 数据卷名称
-    # Host Volume, 挂载到宿主机上的卷轴
+# 定义所有 Volume 映射
+volumes:
+  - name: mvn_repo
     host:
-      # 宿主机的绝对路径
-      path: /home/ABServer/cache/mvn_repo
+      path: /home/ABServer/drone/cache/mvn_repo
   - name: mvn_config
     host:
-      path: /home/ABServer/config/mvn/
-  - name: targetDir
+      path: /home/ABServer/drone/config/mvn
+  - name: build-artifacts  # 构建产物临时目录
+    host:
+      path: /home/ABServer/drone/webroot/test-lhb-basic
+  - name: dockerfile-source
+    host:
+      path: /home/ABServer/drone/config/docker
+  - name: timezone
     host:
-      path: /lhb-basic
+      path: /etc/localtime
+  - name: docker-socket
+    host:
+      path: /var/run/docker.sock
+  - name: delpoyment
+    host:
+      path: /home/ABServer/drone/config/shell
 
 clone:
-  disable: false # 启用代码拉取
+  disable: false
 
 steps:
+  # 阶段1: Maven 构建
   - name: build-project
     image: maven:3.9.4-amazoncorretto-17
     pull: if-not-exists
-    depends_on: [clone] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: mvn_repo # 数据卷名称
-        path: /usr/share/maven/repo # 容器内目录 绝对路径
-      - name: targetDir
-        path: /drone/src/lhb/dist/
+    volumes:
+      - name: mvn_repo
+        path: /usr/share/maven/repo
       - name: mvn_config
-        path: /usr/share/maven/conf/
-    commands: # 执行命令
-      - rm -rf /drone/src/lhb/dist/*
+        path: /usr/share/maven/conf
+    commands:
       - mvn clean package -Dmaven.test.skip=true -P test
-      - cp /drone/src/lhb-basic/lhb-basic-biz/target/*.jar /drone/src/lhb/dist/ && cp -r /drone/src/lhb-basic/lhb-basic-biz/target/lib /drone/src/lhb/dist/ && cp -r /drone/src/lhb-basic/lhb-basic-biz/target/config /drone/src/lhb/dist/ # 复制文件
-    when:
-      status:
-        - success # 当前步骤成功时执行
-  - name: scp-project
-    image: appleboy/drone-scp
-    pull: if-not-exists
-    depends_on: [build-project] # 依赖的步骤
-    volumes: # 挂载数据卷
-      - name: targetDir # 数据卷名称
-        path: /lhb-basic # 容器内目录 绝对路径
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      target: /home/ABServer/deploy-ready/
-      source:
-        - echo ====开始拷贝=======
-        - /lhb-basic/*.jar
-        - /lhb-basic/lib
-        - /lhb-basic/config
-        - echo ====结束拷贝=======
-      when:
-        status:
-          - success # 当前步骤成功时执行
-
-  - name: deploy-project
-    image: appleboy/drone-ssh
-    pull: if-not-exists
-    depends_on: [scp-project] # 依赖的步骤
-    settings:
-      host:
-        from_secret: host
-      username:
-        from_secret: username
-      password:
-        from_secret: userpwd
-      port: 22
-      command_timeout: 2m
-      script:
-        - echo ====开始部署=======
-        - cd /home/ABServer/
-        - rm -rf /home/ABServer/webroot/lhb-basic/*
-        - cp -r /home/ABServer/deploy-ready/lhb-basic /home/ABServer/webroot/
-        - docker stop lhb-basic && docker rm lhb-basic && docker-compose up -d lhb-basic
-        - rm -rf /home/ABServer/deploy-ready/lhb-basic/*
-        # - docker restart nodeServer1
-        - echo ====部署成功=======
+      - echo "===== 构建产物生成验证 ====="
+      - ls -l lhb-basic/lhb-basic-biz/target/*.jar
+      - '[ -d lhb-basic/lhb-basic-biz/target/lib ] || exit 1'
+      - '[ -d lhb-basic/lhb-basic-biz/target/config ] || exit 1'
+
+  # 阶段2: 准备 Docker 构建上下文
+  - name: prepare-docker-context
+    image: alpine:3.21.3
+    depends_on: [ build-project ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: dockerfile-source
+        path: /dockerfiles
+    commands:
+      - rm -rf /context/*
+      - cp -v lhb-basic/lhb-basic-biz/target/*.jar /context/
+      - cp -rv lhb-basic/lhb-basic-biz/target/lib /context/
+      - cp -rv lhb-basic/lhb-basic-biz/target/config /context/
+      - cp /dockerfiles/template-biz-test.dockerfile /context/Dockerfile
+      - sed -i 's/{Xms}/512m/g' /context/Dockerfile
+      - sed -i 's/{Xmx}/512m/g' /context/Dockerfile
+      - sed -i 's/{ImageName}/lhb-basic/g' /context/Dockerfile
+      - echo -e "*\n!*.jar\n!lib/\n!config/\n!Dockerfile" > /context/.dockerignore
+      - echo "===== 构建上下文文件列表 ====="
+      - ls -laR /context
+
+  # 阶段3: 构建并推送镜像
+  - name: docker-build-push
+    image: docker:24.0-cli
+    depends_on: [ prepare-docker-context ]
+    volumes:
+      - name: build-artifacts
+        path: /context
+      - name: timezone
+        path: /etc/localtime
+      - name: docker-socket
+        path: /var/run/docker.sock
+      - name: delpoyment
+        path: /home
+    environment:
+      HARBOR_USER:
+        from_secret: harbor_robot
+      HARBOR_PASS:
+        from_secret: harbor_token
+    commands:
+      - cd /context
+      - TAG=test-$(date +%Y%m%d%H%M%S)
+      - echo "$TAG" > /home/TAG.txt
+      - docker login -u "$HARBOR_USER" -p "$HARBOR_PASS" harbor.kexiaoshuang.com
+      - docker build -t "harbor.kexiaoshuang.com/test/lhb-basic:$TAG" .
+      - docker push "harbor.kexiaoshuang.com/test/lhb-basic:$TAG"
+      - docker rmi "harbor.kexiaoshuang.com/test/lhb-basic:$TAG"
+
+  # 阶段四:测试环境部署服务
+  - name: trigger-deploy
+    image: curlimages/curl:latest
+    depends_on: [ docker-build-push ]
+    volumes:
+      - name: delpoyment
+        path: /shared
+    commands:
+      - TAG=$(cat /shared/TAG.txt)
+      - echo "TAG=$TAG"
+      - cd /shared
+      - sh /shared/trigger-deploy.sh $TAG lhb-basic
 
 trigger:
-  branch:
-    include:
-      - test-basic
-  event:
-    include:
-      - pull_request
-      - push
+  event: [ push ]
+  branch: [ test-basic-new ]

+ 2 - 2
lhb-basic/lhb-basic-biz/src/main/resources/application-test.yml

@@ -5,13 +5,13 @@ spring:
       username: @nacos.username@
       password: @nacos.password@
       discovery:
-        server-addr: ${NACOS_HOST:kxs-register}:${NACOS_PORT:8848}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
         watch:
           enabled: true
         watch-delay: 1000
       config:
-        server-addr: ${spring.cloud.nacos.discovery.server-addr}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
   config:
     import:

+ 2 - 2
lhb-gateway/src/main/resources/application-test.yml

@@ -7,13 +7,13 @@ spring:
       username: @nacos.username@
       password: @nacos.password@
       discovery:
-        server-addr: ${NACOS_HOST:kxs-register}:${NACOS_PORT:8848}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
         watch:
           enabled: true
         watch-delay: 1000
       config:
-        server-addr: ${spring.cloud.nacos.discovery.server-addr}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
   config:
     import:

+ 2 - 2
lhb-quartz/src/main/resources/application-test.yml

@@ -5,13 +5,13 @@ spring:
       username: @nacos.username@
       password: @nacos.password@
       discovery:
-        server-addr: ${NACOS_HOST:kxs-register}:${NACOS_PORT:8848}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
         watch:
           enabled: true
         watch-delay: 1000
       config:
-        server-addr: ${spring.cloud.nacos.discovery.server-addr}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
   config:
     import:

+ 2 - 2
lhb-system/lhb-system-biz/src/main/resources/application-test.yml

@@ -5,13 +5,13 @@ spring:
       username: @nacos.username@
       password: @nacos.password@
       discovery:
-        server-addr: ${NACOS_HOST:kxs-register}:${NACOS_PORT:8848}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
         watch:
           enabled: true
         watch-delay: 1000
       config:
-        server-addr: ${spring.cloud.nacos.discovery.server-addr}
+        server-addr: nacos.default.svc.cluster.local:8848
         namespace: ca8c56b2-d022-4f75-8aaa-6e50ab3ec212
   config:
     import:

+ 1 - 1
pom.xml

@@ -384,7 +384,7 @@
                 <!-- 环境标识,需要与配置文件的名称相对应 -->
                 <profiles.active>test</profiles.active>
                 <nacos.username>nacos</nacos.username>
-                <nacos.password>kxs123123</nacos.password>
+                <nacos.password>Kxs#2025</nacos.password>
             </properties>
             <activation>
                 <!-- 默认环境 -->