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

58 lines
2.0 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: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Build Nuxt
run: npm run build
env:
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 /opt/xflow/.output /opt/xflow/prisma
cp -r .output/. /opt/xflow/.output/
cp -r prisma/. /opt/xflow/prisma/
cp package.json /opt/xflow/package.json
cp prisma.config.ts /opt/xflow/prisma.config.ts
cp server/docker-compose.yml /opt/xflow/docker-compose.yml
sed -i 's/infra-network/infra/' /opt/xflow/docker-compose.yml
docker compose -f /opt/xflow/docker-compose.yml up -d --no-deps --force-recreate xflow
echo "⏳ Waiting for container to start..."
sleep 5
docker exec xflow sh -c "cd /app && npm install --no-save prisma@7.8.0 && export DATABASE_URL=postgresql://xflow:xflow_pass@postgres:5432/xflow && npx prisma migrate deploy --config prisma.config.ts"
echo "✅ XFlow deployed at $(date)"