diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 76cdc04..80c3f71 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -27,4 +27,23 @@ jobs: SHA_TAG="${{ steps.vars.outputs.sha_short }}" docker build -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${SHA_TAG} -f ./Dockerfile . docker push ${IMAGE_NAME}:latest - docker push ${IMAGE_NAME}:${SHA_TAG} \ No newline at end of file + docker push ${IMAGE_NAME}:${SHA_TAG} + + + # 新增步骤:因为在同一台机器,直接在本地运行 kubectl 部署 + - name: 本地触发 K3s 灰度发布 + run: | + SHA_TAG="${{ steps.vars.outputs.sha_short }}" + + echo "正在应用本地基础设施配置..." + # 1. 应用 /home/ 目录下的资源清单 + kubectl apply -f /home/nextjs-traefik-gray.yaml + + echo "正在更新灰度版本镜像至: ${SHA_TAG}" + # 2. 动态修改灰度版的镜像标签,触发 Traefik 灰度滚动更新 + kubectl set image deployment/nextjs-app-canary nextjs=192.168.10.236:31051/nextjs-app:${SHA_TAG} + + # 3. 等待灰度 Pod 启动成功(超时时间 60 秒) + kubectl rollout status deployment/nextjs-app-canary --timeout=60s + + echo "本地灰度发布成功!当前新标签 [${SHA_TAG}] 已切入 Traefik 10% 流量。" \ No newline at end of file