更新 .gitea/workflows/test.yml

This commit is contained in:
2026-06-15 17:32:26 +08:00
parent b5b4875ac2
commit 93768dfdb3
+14 -10
View File
@@ -29,21 +29,25 @@ jobs:
docker push ${IMAGE_NAME}:latest
docker push ${IMAGE_NAME}:${SHA_TAG}
# 新增步骤:因为在同一台机器,直接在本地运行 kubectl 部署
- name: 本地触发 K3s 灰度发布
run: |
# 核心解决步骤:通过 SSH 穿透容器,在宿主机本地执行 kubectl
- name: 穿透容器:在宿主机本地触发 K3s 灰度发布
uses: appleboy/ssh-action@v1.0.3
with:
host: 192.168.10.236
username: root
key: clkj123
script: |
# 此时以下命令全部在宿主机物理机上直接运行,绝不会报 command not found
SHA_TAG="${{ steps.vars.outputs.sha_short }}"
echo "正在应用本地基础设施配置..."
# 1. 应用 /home/ai/k3s 目录下的资源清单
echo "1. 正在应用物理机 /home/ 目录下的基础设施配置..."
kubectl apply -f /home/ai/k3s/nextjs-traefik-gray.yaml
echo "正在更新灰度版本镜像至: ${SHA_TAG}"
# 2. 动态修改灰度版的镜像标签,触发 Traefik 灰度滚动更新
echo "2. 正在更新 K3s 灰度版本镜像至: ${SHA_TAG}"
kubectl set image deployment/nextjs-app-canary nextjs=192.168.10.236:31051/nextjs-app:${SHA_TAG}
# 3. 等待灰度 Pod 启动成功(超时时间 60 秒)
echo "3. 等待灰度 Pod 滚动更新完成..."
kubectl rollout status deployment/nextjs-app-canary --timeout=60s
echo "本地灰度发布成功!当前新标签 [${SHA_TAG}] 已切入 Traefik 10% 流量。"
echo "发布成功新标签 [${SHA_TAG}] 已就绪,已切入 Traefik Header [version: canary] 路由!"