All checks were successful
Koori-ERP-Sync-Only / sync-update (push) Successful in 1m27s
48 lines
1.9 KiB
YAML
48 lines
1.9 KiB
YAML
name: Koori-ERP-Sync-Only
|
||
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: |
|
||
# 即使不完整,也要給一個有 APP_PORT 和 FORWARD_DB_PORT 的檔案
|
||
# 否則 Docker 會用預設值 3306 導致衝突
|
||
cp .env.example .env
|
||
|
||
docker compose up -d --build
|
||
# 這一步最關鍵!它把剛抓下來的新 Code 塞進去「正在跑」的容器
|
||
# 它不會刪掉你的 .env,因為它是用 tar 覆蓋進去
|
||
# tar -cf - . | docker exec -i koori-erp-laravel.test-1 tar -xf - -C /var/www/html
|
||
|
||
# 確保權限(避免你 push 上去的檔案權限不對)
|
||
docker exec koori-erp-laravel.test-1 chown -R www-data:www-data /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. Clear Old Cache
|
||
run: |
|
||
# 讓 Laravel 重新讀取最新的路由與設定
|
||
docker exec koori-erp-laravel.test-1 php artisan config:clear
|
||
docker exec koori-erp-laravel.test-1 php artisan route:clear |