Files
M1ngdaXieandClaude Sonnet 5 921e8ae159 fix: set production VITE_API_URL/VITE_WS_URL explicitly in CI build
The Gitea Actions workflow checks out a fresh copy of the repo via
actions/checkout, which never has frontend/.env.local (it's gitignored,
only exists in the manually-maintained /root/realtime-collab clone).
Without it, Vite silently fell back to the localhost dev defaults and
baked a broken API URL into the production bundle — every CI-triggered
build overwrote a working manual build with a broken one.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
2026-08-15 16:32:10 +08:00

46 lines
1.6 KiB
YAML

name: Deploy
on:
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest # hits the host runner (vps-runner) already on this box
env:
KUBECONFIG: /etc/rancher/k3s/k3s.yaml
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build backend image
run: docker build -t realtime-collab-backend:latest ./backend
- name: Import image into k3s containerd
# docker build only populates the Docker daemon's store; k3s runs its
# own containerd (imagePullPolicy: Never, never pulls a registry), so
# the image must be explicitly imported or the pod keeps running
# whatever was last imported.
run: docker save realtime-collab-backend:latest | k3s ctr -n k8s.io images import -
- name: Roll out backend
run: |
kubectl rollout restart deployment/realtime-collab-backend
kubectl rollout status deployment/realtime-collab-backend --timeout=90s
- name: Build frontend
working-directory: frontend
env:
# frontend/.env.local holds these for the manually-maintained
# /root/realtime-collab checkout, but it's gitignored, so this
# actions/checkout-based workspace never has it — without setting
# them here, Vite silently falls back to the localhost dev
# defaults and bakes a broken API URL into the production bundle.
VITE_API_URL: https://collab.m1ngdaxie.com/api
VITE_WS_URL: wss://collab.m1ngdaxie.com/ws
run: |
npm ci
npm run build
- name: Deploy frontend
run: rsync -a --delete frontend/dist/ /var/www/realtime-collab/