name: Auto Deploy LayerFarm on: push: branches: - master jobs: deploy: runs-on: self-hosted steps: - name: Deployment Logic run: | cd /www/wwwroot/Layerfarm # Ambil ID commit untuk deteksi perubahan OLD_COMMIT=$(git rev-parse HEAD) git fetch --all git reset --hard origin/master NEW_COMMIT=$(git rev-parse HEAD) # Build dependencies (Container temporary) docker run --rm -v $(pwd):/app -w /app composer:2 install --no-interaction --prefer-dist --optimize-autoloader --ignore-platform-reqs # Perbaikan permission untuk user www/docker (PUID 33) chown -R 33:33 vendor/ # Refresh cache Laravel docker compose exec -T app php artisan optimize:clear # Deteksi otomatis migrasi database if [ "$OLD_COMMIT" != "$NEW_COMMIT" ] && git diff --name-only $OLD_COMMIT $NEW_COMMIT | grep -q "^database/migrations/"; then docker compose exec -T app php artisan migrate --force fi