name: Deploy on: push: branches: - main jobs: deploy: runs-on: spot env: COMPOSER_NO_INTERACTION: "1" COMPOSER_HOME: .composer DEPLOY_PATH: /var/www/spot npm_config_cache: .npm-cache steps: - name: Checkout uses: actions/checkout@v4 - name: Check runner tools run: | command -v composer command -v npm command -v rsync - name: Check deploy path run: | test -d "$DEPLOY_PATH" test -w "$DEPLOY_PATH" - name: Validate Composer configuration run: composer validate --no-check-publish - name: Install PHP dependencies run: composer install --no-dev --prefer-dist --optimize-autoloader - name: Install npm dependencies run: npm ci - name: Build frontend run: npm run prod - name: Deploy to production run: | rsync -az --delete \ --exclude ".git/" \ --exclude ".gitea/" \ --exclude ".composer/" \ --exclude ".npm-cache/" \ --exclude "node_modules/" \ --exclude "config/settings.php" \ --exclude "files/" \ --exclude "geo/" \ --exclude "gaia/" \ ./ "$DEPLOY_PATH/"