36 lines
1.0 KiB
YAML
36 lines
1.0 KiB
YAML
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
|