Files
Avtex/.gitea/workflows/deploy.yml
T

82 lines
3.6 KiB
YAML

name: Deploy XFlow (AVTEX/Projects)
on:
push:
branches:
- master
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
shell: sh
steps:
- name: Checkout
shell: sh
env:
TOKEN: ${{ secrets.GIT_TOKEN }}
run: |
apk add --no-cache git
CLEAN_TOKEN=$(printf '%s' "${TOKEN}" | tr -d '\r\n')
git clone "http://oauth2:${CLEAN_TOKEN}@gitea:3000/AVTEX/XFlow.git" .
- name: Install dependencies
run: |
npm install --include=dev
ls -la node_modules/prisma || echo "Prisma not found in node_modules"
- name: Build Nuxt
run: |
npx prisma generate
npm run build
mkdir -p .output/server/node_modules/@prisma
cp -r node_modules/.prisma .output/server/node_modules/
cp -r node_modules/@prisma/* .output/server/node_modules/@prisma/
cp -r node_modules/pg .output/server/node_modules/
env:
DATABASE_URL: "postgresql://admin:dummy@dummy:5432/dummy" # Нужна заглушка для билда призмы
NUXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }}
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }}
NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
NUXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}
- name: Deploy to server
run: |
apk add --no-cache docker-cli docker-compose
# Подготовка папок в новой структуре
mkdir -p /root/projects/xflow/.output /root/projects/xflow/prisma /root/projects/xflow/node_modules
cp -r .output/. /root/projects/xflow/.output/
cp -r prisma/. /root/projects/xflow/prisma/
cp -r node_modules/. /root/projects/xflow/node_modules/
cp package.json /root/projects/xflow/package.json
cp prisma.config.ts /root/projects/xflow/prisma.config.ts
# Перезапуск конкретного сервиса в рамках общей инфраструктуры
# Мы используем мастер-файл из корня проектов
docker stop xflow_crm 2>/dev/null || true
docker rm xflow_crm 2>/dev/null || true
docker compose -f /root/projects/docker-compose.yml up -d --no-deps xflow_crm
echo "⏳ Waiting for container to start..."
sleep 5
# Миграции с использованием новой БД xflow_crm_db
docker exec xflow_crm npx prisma migrate deploy
docker exec xflow_crm npx prisma db seed
echo "✅ XFlow CRM deployed at $(date)"
env:
FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }}
FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }}
FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}
NUXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }}
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }}
NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}
NUXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}