bd48cafcc9
- Dockerfile: Turborepo 멀티스테이지 빌드 (Next.js standalone) - docker-compose.prod.yml: PostgreSQL/Redis/Nginx/Web/Admin 프로덕션 스택 - deploy/poll-deploy.sh: cron 기반 자동배포 (매분 Gitea 폴링) - deploy/nginx/default.conf: 리버스 프록시 설정 - next.config.ts: output standalone 추가 - .env.production.example: 환경변수 템플릿 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
43 lines
1.2 KiB
YAML
43 lines
1.2 KiB
YAML
name: Deploy Re:Link
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Create .env.production
|
|
run: |
|
|
cat > .env.production << 'ENVEOF'
|
|
DB_USER=${{ secrets.DB_USER }}
|
|
DB_PASSWORD=${{ secrets.DB_PASSWORD }}
|
|
DB_NAME=${{ secrets.DB_NAME }}
|
|
REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }}
|
|
NEXTAUTH_URL=${{ secrets.NEXTAUTH_URL }}
|
|
NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }}
|
|
ENVEOF
|
|
|
|
- name: Build and Deploy
|
|
run: |
|
|
docker compose -f docker-compose.prod.yml --env-file .env.production up -d --build --remove-orphans
|
|
|
|
- name: Run database migrations
|
|
run: |
|
|
docker compose -f docker-compose.prod.yml exec -T web sh -c "cd /app && npx prisma migrate deploy" || echo "Migration skipped (first deploy)"
|
|
|
|
- name: Health check
|
|
run: |
|
|
echo "Waiting for services to start..."
|
|
sleep 10
|
|
curl -f http://localhost/health || echo "Health check pending - services may still be starting"
|
|
|
|
- name: Cleanup old images
|
|
run: |
|
|
docker image prune -f
|