0606.2
This commit is contained in:
30
.github/workflows/nextjs.yml
vendored
30
.github/workflows/nextjs.yml
vendored
@@ -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 "容器日志:"
|
||||||
|
|||||||
Reference in New Issue
Block a user