in1
Some checks failed
CI / build (20.15.1) (push) Failing after 23m22s

This commit is contained in:
shanshanzhong 2025-09-26 06:47:11 -07:00
parent 92e298ee4e
commit 0f58c4ef7c

View File

@ -369,6 +369,8 @@ jobs:
username: ${{ secrets.USERNAME }} username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }} key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }} port: ${{ secrets.PORT }}
timeout: 300s
command_timeout: 600s
script: | script: |
echo "=== SSH变量调试信息 ===" echo "=== SSH变量调试信息 ==="
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}" echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
@ -377,16 +379,69 @@ jobs:
echo "BRANCH: ${{ env.BRANCH }}" echo "BRANCH: ${{ env.BRANCH }}"
echo "=== 部署管理面板 ===" echo "=== 部署管理面板 ==="
docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}
docker stop ppanel-admin-web || true # 拉取镜像(带重试)
docker rm ppanel-admin-web || true echo "拉取Docker镜像..."
for i in {1..3}; do
if docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}; then
echo "镜像拉取成功"
break
else
echo "镜像拉取失败,重试 $i/3"
sleep 5
if [ $i -eq 3 ]; then
echo "❌ 镜像拉取失败,部署终止"
exit 1
fi
fi
done
# 安全停止和移除容器
echo "检查现有容器状态..."
if docker ps -q -f name=ppanel-admin-web | grep -q .; then
echo "停止运行中的容器..."
docker stop ppanel-admin-web --time=10 || true
sleep 3
fi
if docker ps -aq -f name=ppanel-admin-web | grep -q .; then
echo "移除现有容器..."
# 等待容器完全停止
for i in {1..10}; do
if docker rm ppanel-admin-web 2>/dev/null; then
echo "容器移除成功"
break
else
echo "等待容器停止... $i/10"
sleep 2
fi
done
fi
echo "启动新容器..."
docker run -d \ docker run -d \
--name ppanel-admin-web \ --name ppanel-admin-web \
--restart unless-stopped \ --restart unless-stopped \
-p 3001:3000 \ -p 3001:3000 \
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \ -e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }} ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}
echo "✅ 管理面板部署成功"
# 验证容器启动
echo "验证容器启动状态..."
for i in {1..10}; do
if docker ps -q -f name=ppanel-admin-web | grep -q .; then
echo "✅ 管理面板部署成功"
docker ps -f name=ppanel-admin-web --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
exit 0
else
echo "等待容器启动... $i/10"
sleep 3
fi
done
echo "❌ 管理面板部署失败 - 容器未能正常启动"
docker logs ppanel-admin-web || true
exit 1
- name: 部署用户面板到服务器 - name: 部署用户面板到服务器
if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both' if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both'
@ -396,6 +451,8 @@ jobs:
username: ${{ secrets.USERNAME }} username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }} key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }} port: ${{ secrets.PORT }}
timeout: 300s
command_timeout: 600s
script: | script: |
echo "=== SSH变量调试信息 ===" echo "=== SSH变量调试信息 ==="
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}" echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
@ -404,16 +461,69 @@ jobs:
echo "BRANCH: ${{ env.BRANCH }}" echo "BRANCH: ${{ env.BRANCH }}"
echo "=== 部署用户面板 ===" echo "=== 部署用户面板 ==="
docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}
docker stop ppanel-user-web || true # 拉取镜像(带重试)
docker rm ppanel-user-web || true echo "拉取Docker镜像..."
for i in {1..3}; do
if docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}; then
echo "镜像拉取成功"
break
else
echo "镜像拉取失败,重试 $i/3"
sleep 5
if [ $i -eq 3 ]; then
echo "❌ 镜像拉取失败,部署终止"
exit 1
fi
fi
done
# 安全停止和移除容器
echo "检查现有容器状态..."
if docker ps -q -f name=ppanel-user-web | grep -q .; then
echo "停止运行中的容器..."
docker stop ppanel-user-web --time=10 || true
sleep 3
fi
if docker ps -aq -f name=ppanel-user-web | grep -q .; then
echo "移除现有容器..."
# 等待容器完全停止
for i in {1..10}; do
if docker rm ppanel-user-web 2>/dev/null; then
echo "容器移除成功"
break
else
echo "等待容器停止... $i/10"
sleep 2
fi
done
fi
echo "启动新容器..."
docker run -d \ docker run -d \
--name ppanel-user-web \ --name ppanel-user-web \
--restart unless-stopped \ --restart unless-stopped \
-p 3002:3000 \ -p 3002:3000 \
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \ -e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }} ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}
echo "✅ 用户面板部署成功"
# 验证容器启动
echo "验证容器启动状态..."
for i in {1..10}; do
if docker ps -q -f name=ppanel-user-web | grep -q .; then
echo "✅ 用户面板部署成功"
docker ps -f name=ppanel-user-web --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
exit 0
else
echo "等待容器启动... $i/10"
sleep 3
fi
done
echo "❌ 用户面板部署失败 - 容器未能正常启动"
docker logs ppanel-user-web || true
exit 1
- name: 发送成功通知到Telegram - name: 发送成功通知到Telegram
if: success() if: success()