From 4a85309d9b81c72780b56140d934e96b616c350e Mon Sep 17 00:00:00 2001 From: Lutfi Hakim Date: Sun, 15 Mar 2026 20:28:50 +0700 Subject: [PATCH] setup CI CD --- .github/workflows/deploy.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/deploy.yml 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