Files
Storage/.gitea/workflows/deploy.yml
T
jif2.zhang d1d31f838b
Build and Deploy / build-image (push) Successful in 59s
ci: fix docker run 多行命令 (YAML 块标量保留换行)
2026-09-28 21:21:30 +08:00

59 lines
1.6 KiB
YAML

name: Build and Deploy
# 每次主分支提交: 构建前端 + Docker 镜像 → 在 runner (baihu) 上重建容器自动部署
# 端口 3003 (与 Wardrobe :3002 / iboard :3001 同机共存, 按部署环境分配, 见 部署环境.md)
# 数据持久化: 具名卷 storage-data 挂载 /app/data (DuckDB + 图片), 重建容器不丢数据
on:
push:
branches:
- main
- master
jobs:
build-image:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: https://gitea.com/actions/checkout@v4
- name: Setup Node
uses: https://gitea.com/actions/setup-node@v4
with:
node-version: 22
- name: Install deps
run: npm ci --no-audit --no-fund
- name: Typecheck & build
run: |
npm run check
npm run build
- name: Build Docker image
run: docker build -t storage:latest .
- name: Remove old container
run: docker rm -vf storage || true
- name: Run container
# 一键镜像: 静态前端 + API + 图片; 端口 3003
run: |
docker run -d --name storage -p 3003:3003 \
-v storage-data:/app/data \
storage:latest
- name: Verify health
run: |
for i in $(seq 1 20); do
if curl -sf http://127.0.0.1:3003/healthz >/dev/null 2>&1; then
echo "storage healthy after ${i}s"
exit 0
fi
sleep 1
done
echo "ERROR: storage did not become healthy" >&2
docker logs storage --tail 50 2>&1
exit 1