Files
CFDivePlatform/.gitea/workflows/deploy.yml
T
a620906209 0160d72467 fix: 修正 CI 並發 fetch 導致 git ref 衝突
git pull 改為 flock + fetch + reset --hard:
- flock 防止兩次 CI 同時更新 ref 產生 race condition
- reset --hard 比 pull 更適合 CI 環境,不做 merge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 03:00:57 +08:00

48 lines
1.4 KiB
YAML

name: Deploy Production
on:
push:
branches:
- master
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Pull latest code
run: |
cd /root/myproject/CFDivePlatform
flock -w 30 /tmp/cfdive-deploy.lock git fetch origin
git reset --hard origin/master
- name: Install Composer dependencies
run: |
cd /root/myproject/CFDivePlatform
docker compose exec -T app composer install --no-dev --optimize-autoloader
- name: Run migrations
run: |
cd /root/myproject/CFDivePlatform
docker compose exec -T app php artisan migrate --force
- name: Cache configs
run: |
cd /root/myproject/CFDivePlatform
docker compose exec -T app php artisan config:cache
docker compose exec -T app php artisan route:cache
docker compose exec -T app php artisan view:cache
docker compose exec -T app php artisan event:cache
- name: Restart queue worker
run: |
cd /root/myproject/CFDivePlatform
docker compose restart queue-worker
- name: Rebuild frontend (if changed)
run: |
cd /root/myproject/CFDivePlatform
if git diff --name-only HEAD~1 HEAD | grep -q '^frontend/'; then
docker compose build frontend
docker compose up -d frontend
fi