designtopack/.forgejo/workflows/deploy-preprod.yml
isUnknown 1fb4e47d8d
All checks were successful
Deploy Production / Build and Deploy to Production (push) Successful in 31s
fix: CI deploy .user.ini + ACL mask, migration memory limit
- Déploie .user.ini via rsync pour augmenter memory_limit à 512M
- Réapplique le mask ACL rwx après chaque deploy
- ini_set('memory_limit') dans la route de migration user-projects

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 18:31:57 +01:00

73 lines
2.4 KiB
YAML

name: Deploy Preprod
on:
push:
branches:
- preprod
jobs:
build-and-deploy:
name: Build and Deploy to Preprod
runs-on: docker
container:
image: forgejo-ci-node:latest
steps:
- name: Checkout code
run: |
git clone --depth 1 --branch preprod https://forge.studio-variable.com/${{ github.repository }}.git .
ls -la
- name: Install npm dependencies
run: npm install
- name: Build frontend (preprod)
run: npm run build:preprod
- 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 }}
PREPROD_PATH: ${{ secrets.PREPROD_PATH }}
run: |
cd dist
echo "Deploying site/"
sshpass -p "$PASSWORD" rsync -az --delete -O --no-perms --no-owner --no-group \
--include 'accounts/' \
--exclude 'accounts/*' \
--include 'sessions/' \
--exclude 'sessions/*' \
--include 'cache/' \
--exclude 'cache/*' \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
site/ $USERNAME@$HOST:$PREPROD_PATH/site/
echo "Deploying vendor/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
vendor/ $USERNAME@$HOST:$PREPROD_PATH/vendor/
echo "Deploying kirby/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
kirby/ $USERNAME@$HOST:$PREPROD_PATH/kirby/
echo "Deploying assets/"
sshpass -p "$PASSWORD" rsync -az --delete -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
assets/ $USERNAME@$HOST:$PREPROD_PATH/assets/
echo "Deploying .user.ini"
sshpass -p "$PASSWORD" rsync -az -O \
-e 'ssh -p 2244 -o StrictHostKeyChecking=no' \
.user.ini $USERNAME@$HOST:$PREPROD_PATH/.user.ini
echo "Fix ACL mask on writable directories"
sshpass -p "$PASSWORD" ssh -p 2244 -o StrictHostKeyChecking=no $USERNAME@$HOST \
"setfacl -m mask::rwx $PREPROD_PATH/site/accounts $PREPROD_PATH/site/cache $PREPROD_PATH/site/sessions $PREPROD_PATH/content $PREPROD_PATH/media"