diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..c81a9a7 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,35 @@ +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