geoproject-app/.forgejo/workflows/deploy.yml
isUnknown b123e92da8 ci: add --delete flag to FTP mirror commands
Enable automatic deletion of remote files that no longer exist locally.
This ensures the production server stays in sync with the repository,
removing obsolete files like the renamed stylesheet.css.

Protected directories (accounts, cache, sessions) remain excluded.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-09 13:59:54 +01:00

62 lines
1.7 KiB
YAML

name: Deploy
on:
push:
branches:
- main
jobs:
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 dependencies
run: |
npm ci
- name: Prepare dist directory
run: |
rm -rf dist
cp -r public dist
ls -la dist/
- name: Build Vue app
run: |
npm run build
ls -la dist/assets/dist/
- name: Deploy via FTP
env:
USERNAME: ${{ secrets.USERNAME }}
PASSWORD: ${{ secrets.PASSWORD }}
PRODUCTION_HOST: ${{ secrets.PRODUCTION_HOST }}
run: |
cd dist
lftp -c "
set ftp:ssl-allow no;
open -u $USERNAME,$PASSWORD $PRODUCTION_HOST;
mirror --reverse --delete --verbose --ignore-time --parallel=10 \
-x 'local/' \
-x 'css/src/' \
-x 'css/style.css' \
-x 'css/style.css.map' \
-x 'css/style.scss' \
assets assets;
mirror --reverse --delete --verbose --ignore-time --parallel=10 \
-x 'accounts/' \
-x 'cache/' \
-x 'sessions/' \
site site;
mirror --reverse --delete --verbose --ignore-time --parallel=10 \
kirby kirby;
mirror --reverse --delete --verbose --ignore-time --parallel=10 \
vendor vendor;
put index.php -o index.php;
quit"