name: Deploy on: push: branches: - main jobs: deploy: runs-on: debian steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: npm ci - name: Rebuild Prisma Client run: npx prisma generate - name: Build run: npm run build env: DATABASE_URL: ${{ secrets.DATABASE_URL }} - name: Run database migrations run: npx prisma db push env: DATABASE_URL: ${{ secrets.DATABASE_URL }} - name: Copy files to app directory run: | rsync -a --delete \ --exclude='.git' \ --exclude='node_modules' \ ./ /opt/cable-manager/ cp -r node_modules /opt/cable-manager/ - name: Restart app run: | cd /opt/cable-manager pm2 restart cable-manager || pm2 start npm --name cable-manager -- start pm2 save