0606.2
Some checks failed
Next.js CI/CD 流水线 / build (push) Successful in 6m6s
Next.js CI/CD 流水线 / deploy (push) Has been cancelled

This commit is contained in:
2025-06-06 01:14:24 +08:00
parent 643ef11931
commit 9351c12fef

View File

@@ -36,7 +36,7 @@ jobs:
# 缓存 pnpm 依赖 # 缓存 pnpm 依赖
- name: 缓存 pnpm 依赖 - name: 缓存 pnpm 依赖
uses: actions/cache@v4 uses: actions/cache@v3
with: with:
path: ${{ env.STORE_PATH }} path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
@@ -47,10 +47,6 @@ jobs:
- name: 安装依赖 - name: 安装依赖
run: pnpm install --frozen-lockfile run: pnpm install --frozen-lockfile
# 代码检查
- name: 代码检查
run: pnpm run lint --fix || true
# 构建应用 # 构建应用
- name: 构建应用 - name: 构建应用
run: pnpm run build run: pnpm run build
@@ -74,9 +70,9 @@ jobs:
# 创建压缩包 # 创建压缩包
tar -czf deploy-package.tar.gz -C deploy-package . tar -czf deploy-package.tar.gz -C deploy-package .
# 上传部署包 # 上传部署包 (使用 v3 兼容 GHES)
- name: 上传部署包 - name: 上传部署包
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v3
with: with:
name: deploy-package name: deploy-package
path: deploy-package.tar.gz path: deploy-package.tar.gz
@@ -89,15 +85,15 @@ jobs:
if: github.ref == 'refs/heads/main' && github.event_name == 'push' if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps: steps:
# 下载部署包 # 下载部署包 (使用 v3 兼容 GHES)
- name: 下载部署包 - name: 下载部署包
uses: actions/download-artifact@v4 uses: actions/download-artifact@v3
with: with:
name: deploy-package name: deploy-package
# 拷贝部署包到服务器 # 拷贝部署包到服务器
- name: 拷贝部署包到服务器 - name: 拷贝部署包到服务器
uses: appleboy/scp-action@master uses: appleboy/scp-action@v0.1.4
with: with:
host: ${{ secrets.SERVER_HOST }} host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }} username: ${{ secrets.SERVER_USERNAME }}
@@ -108,7 +104,7 @@ jobs:
# 在服务器上部署 # 在服务器上部署
- name: 在服务器上部署应用 - name: 在服务器上部署应用
uses: appleboy/ssh-action@master uses: appleboy/ssh-action@v1.0.0
with: with:
host: ${{ secrets.SERVER_HOST }} host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }} username: ${{ secrets.SERVER_USERNAME }}
@@ -166,7 +162,7 @@ jobs:
--name saas2-app \ --name saas2-app \
--restart unless-stopped \ --restart unless-stopped \
-p 3000:3000 \ -p 3000:3000 \
--health-cmd="curl -f http://localhost:3000/api/health || exit 1" \ --health-cmd="wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1" \
--health-interval=30s \ --health-interval=30s \
--health-timeout=10s \ --health-timeout=10s \
--health-retries=3 \ --health-retries=3 \
@@ -174,7 +170,7 @@ jobs:
# 等待容器启动 # 等待容器启动
echo "等待容器启动..." echo "等待容器启动..."
sleep 10 sleep 15
# 检查容器状态 # 检查容器状态
if [ "$(docker ps -q -f name=saas2-app)" ]; then if [ "$(docker ps -q -f name=saas2-app)" ]; then
@@ -182,6 +178,14 @@ jobs:
docker ps | grep saas2-app docker ps | grep saas2-app
echo "" echo ""
echo "应用访问地址: http://$(hostname -I | awk '{print $1}'):3000" echo "应用访问地址: http://$(hostname -I | awk '{print $1}'):3000"
# 测试健康检查
echo "测试健康检查..."
if wget --timeout=10 -qO- http://localhost:3000/api/health > /dev/null 2>&1; then
echo "✅ 健康检查通过"
else
echo "⚠️ 健康检查失败,但容器正在运行"
fi
else else
echo "❌ 部署失败!容器未能正常启动" echo "❌ 部署失败!容器未能正常启动"
echo "容器日志:" echo "容器日志:"