fix: 修正 CI deploy 流程
- 备份镜像提前到 build 前执行,确保回滚的是旧版本 - health check 改用 top-level await 避免 bun 异步退出时序问题 - 移除不必要的 --force-recreate(compose 已自动检测镜像变化)
This commit is contained in:
parent
af55992627
commit
686f5ea912
@ -69,7 +69,7 @@ jobs:
|
||||
run: |
|
||||
sleep 10
|
||||
for i in {1..5}; do
|
||||
if bun -e "fetch('http://localhost:3001/v1/health').then(r=>r.ok?process.exit(0):process.exit(1)).catch(()=>process.exit(1))"; then
|
||||
if bun -e "try{const r=await fetch('http://localhost:3001/v1/health');process.exit(r.ok?0:1)}catch{process.exit(1)}"; then
|
||||
echo "Test environment is healthy!"
|
||||
exit 0
|
||||
fi
|
||||
@ -92,22 +92,20 @@ jobs:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Backup current image
|
||||
run: docker tag duoqi-api:prod duoqi-api:rollback 2>/dev/null || true
|
||||
|
||||
- name: Build production image
|
||||
run: docker build -t duoqi-api:prod .
|
||||
|
||||
- name: Deploy production
|
||||
run: |
|
||||
# 备份当前镜像(用于回滚)
|
||||
docker tag duoqi-api:prod duoqi-api:rollback 2>/dev/null || true
|
||||
|
||||
# 滚动更新
|
||||
docker compose -f /opt/duoqi-api/docker-compose.yml up -d --no-build api-prod
|
||||
run: docker compose -f /opt/duoqi-api/docker-compose.yml up -d --no-build api-prod
|
||||
|
||||
- name: Health check
|
||||
run: |
|
||||
sleep 15
|
||||
for i in {1..5}; do
|
||||
if bun -e "fetch('http://localhost:3000/v1/health').then(r=>r.ok?process.exit(0):process.exit(1)).catch(()=>process.exit(1))"; then
|
||||
if bun -e "try{const r=await fetch('http://localhost:3000/v1/health');process.exit(r.ok?0:1)}catch{process.exit(1)}"; then
|
||||
echo "Production deployment successful!"
|
||||
exit 0
|
||||
fi
|
||||
@ -118,7 +116,7 @@ jobs:
|
||||
# 健康检查失败,自动回滚
|
||||
echo "Health check failed! Rolling back..."
|
||||
docker tag duoqi-api:rollback duoqi-api:prod
|
||||
docker compose -f /opt/duoqi-api/docker-compose.yml up -d --no-build api-prod
|
||||
docker compose -f /opt/duoqi-api/docker-compose.yml up -d --force-recreate --no-build api-prod
|
||||
exit 1
|
||||
|
||||
- name: Cleanup
|
||||
|
||||
Loading…
Reference in New Issue
Block a user