setup CI CD

This commit is contained in:
Lutfi Hakim 2026-03-15 20:28:50 +07:00
parent 7d1bacaf43
commit 4a85309d9b
1 changed files with 35 additions and 0 deletions

35
.github/workflows/deploy.yml vendored Normal file
View File

@ -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