Some checks failed
Koori-ERP-Demo-Deploy / sync-update (push) Has been cancelled
52 lines
2.1 KiB
YAML
52 lines
2.1 KiB
YAML
name: Koori-ERP-Demo-Deploy
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
|
||
jobs:
|
||
sync-update:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: 1. Checkout New Code
|
||
uses: actions/checkout@v3
|
||
with:
|
||
github-server-url: http://192.168.0.103:3000
|
||
repository: ${{ gitea.repository }}
|
||
|
||
- name: 2. Sync Files to Running Container
|
||
run: |
|
||
# B. 執行複製
|
||
cp .env.example .env
|
||
|
||
sed -i "s|^APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env
|
||
|
||
docker compose up -d --build --force-recreate --wait
|
||
# 這一步最關鍵!它把剛抓下來的新 Code 塞進去「正在跑」的容器
|
||
# 它不會刪掉你的 .env,因為它是用 tar 覆蓋進去
|
||
tar -cf - . | docker exec -i koori-erp-laravel.test-1 tar -xf - -C /var/www/html
|
||
|
||
|
||
- name: 3. Refresh Backend (Only if needed)
|
||
run: |
|
||
# 執行 Composer (確保你有加新套件的話會抓到)
|
||
docker exec -w /var/www/html koori-erp-laravel.test-1 composer install --optimize-autoloader
|
||
# 同步資料庫欄位 (如果你有改 Migration 的話)
|
||
docker exec koori-erp-laravel.test-1 php artisan migrate --force
|
||
|
||
- name: 4. Build New React Assets
|
||
run: |
|
||
# 既然你改了前端,就要在容器內重新跑一次打包
|
||
docker exec -w /var/www/html koori-erp-laravel.test-1 npm install
|
||
docker exec -w /var/www/html koori-erp-laravel.test-1 npm run build
|
||
- name: 5. Final Permission Fix
|
||
run: |
|
||
# 統一修正權限
|
||
docker exec koori-erp-laravel.test-1 chown -R 1000:1000 /var/www/html
|
||
docker exec koori-erp-laravel.test-1 chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache
|
||
- name: 6. Clear Old Cache
|
||
run: |
|
||
# 讓 Laravel 重新讀取最新的路由與設定
|
||
docker exec koori-erp-laravel.test-1 php artisan view:clear
|
||
docker exec koori-erp-laravel.test-1 php artisan config:clear
|
||
docker exec koori-erp-laravel.test-1 php artisan route:clear |