designtopack/.forgejo/workflows/deploy-prod.yml
isUnknown f994b1c982 Fix Forgejo CI workflows and add .gitkeep files
- Fix rsync exclusions to properly preserve accounts, cache, and sessions
- Remove tiles exclusion (not used in this project)
- Add .gitkeep files to track empty directories structure
- Update .gitignore to allow .gitkeep files

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 15:39:50 +01:00

64 lines
1.9 KiB
YAML

name: Deploy Production
on:
push:
branches:
- main
jobs:
build-and-deploy:
name: Build and Deploy to Production
runs-on: docker
container:
image: forgejo-ci-node:latest
steps:
- name: Checkout code
run: |
git clone --depth 1 --branch main https://forge.studio-variable.com/${{ github.repository }}.git .
ls -la
- name: Install npm dependencies
run: npm install
- name: Build frontend (production)
run: npm run build
- name: Install composer dependencies
run: |
cd dist
composer install --no-dev --optimize-autoloader
- name: Deploy via rsync
env:
USERNAME: ${{ secrets.USERNAME }}
PASSWORD: ${{ secrets.PASSWORD }}
HOST: ${{ secrets.HOST }}
PROD_PATH: ${{ secrets.PROD_PATH }}
run: |
cd dist
echo "Deploying site/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
--exclude 'accounts/*' \
--exclude 'cache/*' \
--exclude 'sessions/*' \
--include 'accounts/' \
--include 'cache/' \
--include 'sessions/' \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
site/ $USERNAME@$HOST:$PROD_PATH/site/
echo "Deploying vendor/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
vendor/ $USERNAME@$HOST:$PROD_PATH/vendor/
echo "Deploying kirby/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
kirby/ $USERNAME@$HOST:$PROD_PATH/kirby/
echo "Deploying assets/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
assets/ $USERNAME@$HOST:$PROD_PATH/assets/