name: Deploy on: push: branches: - master jobs: deploy: runs-on: spot env: COMPOSER_NO_INTERACTION: "1" COMPOSER_HOME: /tmp/spot-actions-composer DEPLOY_PATH: /var/www/spot HOME: /tmp/spot-actions-home XDG_CACHE_HOME: /tmp/spot-actions-cache npm_config_cache: /tmp/spot-actions-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 "node_modules/" \ --exclude "config/settings.php" \ --exclude "files/" \ --exclude "geo/" \ --exclude "gaia/" \ ./ "$DEPLOY_PATH/"