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.DEMO_USERNAME }} PASSWORD: ${{ secrets.DEMO_PASSWORD }} HOST: ${{ secrets.DEMO_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 \ 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"