diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 0db8ea9..23610a6 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -34,6 +34,20 @@ jobs: ./ amba@192.168.0.103:/home/amba/koori-erp/ rm ~/.ssh/id_rsa_demo + # 1.5 啟用維護模式(讓使用者看到維護畫面而非 500) + - name: Step 1.5 - Enable Maintenance Mode + uses: appleboy/ssh-action@master + with: + host: 192.168.0.103 + port: 22 + username: amba + key: ${{ secrets.DEMO_SSH_KEY }} + script: | + cd /home/amba/koori-erp + if [ -f artisan ]; then + docker exec koori-erp-laravel php artisan down --refresh=15 --retry=60 || true + fi + # 2. 啟動或重建容器(502 最容易發生在這裡的瞬間) - name: Step 2 - Container Up & Health Check uses: appleboy/ssh-action@master @@ -67,6 +81,17 @@ jobs: " docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache + # 4. 關閉維護模式(部署完成,恢復服務) + - name: Step 4 - Disable Maintenance Mode + uses: appleboy/ssh-action@master + with: + host: 192.168.0.103 + port: 22 + username: amba + key: ${{ secrets.DEMO_SSH_KEY }} + script: | + docker exec koori-erp-laravel php artisan up + # --- 2. 正式環境部署 (erp.koori.tw:2224) --- deploy-production: if: github.ref == 'refs/heads/main' @@ -93,6 +118,20 @@ jobs: ./ root@erp.koori.tw:/var/www/koori-erp-prod/ rm ~/.ssh/id_rsa_prod + # 1.5 啟用維護模式(讓使用者看到維護畫面而非 500) + - name: Step 1.5 - Enable Maintenance Mode + uses: appleboy/ssh-action@master + with: + host: erp.koori.tw + port: 2224 + username: root + key: ${{ secrets.PROD_SSH_KEY }} + script: | + cd /var/www/koori-erp-prod + if [ -f artisan ]; then + docker exec koori-erp-laravel php artisan down --refresh=15 --retry=60 || true + fi + # 2. 啟動或重建容器(502 最容易發生在這裡的瞬間) - name: Step 2 - Container Up & Health Check uses: appleboy/ssh-action@master @@ -119,6 +158,17 @@ jobs: " docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache + # 3. 關閉維護模式(部署完成,恢復服務) + - name: Step 3 - Disable Maintenance Mode + uses: appleboy/ssh-action@master + with: + host: erp.koori.tw + port: 2224 + username: root + key: ${{ secrets.PROD_SSH_KEY }} + script: | + docker exec koori-erp-laravel php artisan up + # 3. 處理後端與前端依賴(這時網站可能因為沒 vendor 呈現 500/502) # - name: Step 3 - Composer & NPM Build