From e5715b727411dcb608eb182a42db1ab0efca4a3d Mon Sep 17 00:00:00 2001 From: sky121113 Date: Tue, 6 Jan 2026 10:09:46 +0800 Subject: [PATCH] test1 --- .gitea/workflows/deploy-demo.yaml | 94 +++++++-------- .gitea/workflows/deploy.yaml | 194 +++++++++--------------------- 2 files changed, 105 insertions(+), 183 deletions(-) diff --git a/.gitea/workflows/deploy-demo.yaml b/.gitea/workflows/deploy-demo.yaml index 3d68ed9..c23e5c7 100644 --- a/.gitea/workflows/deploy-demo.yaml +++ b/.gitea/workflows/deploy-demo.yaml @@ -1,54 +1,54 @@ -name: Koori-ERP-Demo-Deploy -on: - push: - branches: - - demo +# name: Koori-ERP-Demo-Deploy +# on: +# push: +# branches: +# - demo -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: 1. Checkout New Code - # run: | - # # 進入工作目錄並直接用 git 抓 code,完全不需要 Node - # rm -rf ./* - # git clone -b main http://server:3000/${{ gitea.repository }}.git . +# 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: 1. Checkout New Code +# # run: | +# # # 進入工作目錄並直接用 git 抓 code,完全不需要 Node +# # rm -rf ./* +# # git clone -b main http://server:3000/${{ gitea.repository }}.git . - - name: 2. Sync Files to Running Container - run: | - # A. 執行複製 - cp .env.example .env - sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env - # B. 確保容器環境是最新的 - # --wait 會確保容器真的跑起來了才執行下一步 - docker compose up -d --build --force-recreate --wait +# - name: 2. Sync Files to Running Container +# run: | +# # A. 執行複製 +# cp .env.example .env +# sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env +# # B. 確保容器環境是最新的 +# # --wait 會確保容器真的跑起來了才執行下一步 +# docker compose up -d --build --force-recreate --wait - # C. 執行精簡化複製 (關鍵優化!) - # 排除 .git, node_modules, vendor 這三大黑洞 - tar --exclude='.git' \ - --exclude='node_modules' \ - --exclude='vendor' \ - -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html +# # C. 執行精簡化複製 (關鍵優化!) +# # 排除 .git, node_modules, vendor 這三大黑洞 +# tar --exclude='.git' \ +# --exclude='node_modules' \ +# --exclude='vendor' \ +# -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html - docker exec koori-erp-laravel chown -R 1000:1000 /var/www/html +# docker exec koori-erp-laravel chown -R 1000:1000 /var/www/html - - name: 3. Backend & Frontend Build - run: | - docker exec -u 1000:1000 -w /var/www/html koori-erp-laravel sh -c " - composer install --optimize-autoloader && - npm install && - npm run build && - php artisan migrate --force && - php artisan optimize:clear - " +# - name: 3. Backend & Frontend Build +# run: | +# docker exec -u 1000:1000 -w /var/www/html koori-erp-laravel sh -c " +# composer install --optimize-autoloader && +# npm install && +# npm run build && +# php artisan migrate --force && +# php artisan optimize:clear +# " - - name: 4. Final Permission Fix - run: | - # 統一修正權限 - docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache \ No newline at end of file +# - name: 4. Final Permission Fix +# run: | +# # 統一修正權限 +# docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache \ No newline at end of file diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 54959e9..a8e97ac 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -1,151 +1,73 @@ -# name: Koori-ERP-Demo-Deploy -# on: -# push: -# branches: -# - main +name: Koori-ERP-Deploy-System -# jobs: -# sync-update: -# runs-on: demo-server -# steps: -# # - name: 1. Checkout New Code -# # uses: actions/checkout@v3 -# # with: -# # github-server-url: http://192.168.0.103:3000 -# # repository: ${{ gitea.repository }} -# - name: 1. Checkout New Code -# run: | -# # 進入工作目錄並直接用 git 抓 code,完全不需要 Node -# rm -rf ./* -# git clone -b main http://server:3000/${{ gitea.repository }}.git . - -# - name: 2. Sync Files & Environment -# run: | -# # 建立 .env -# cp .env.example .env -# sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env - -# # 啟動環境 -# docker compose up -d --build --force-recreate - -# # A. 同步檔案 (包含 .env) -# tar --exclude='.git' --exclude='node_modules' --exclude='vendor' -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html - -# - name: 3. Backend & Frontend Build -# run: | -# # 使用一個 exec 區塊跑完編譯,減少 SSH/Exec 連線開銷 -# docker exec -w /var/www/html koori-erp-laravel sh -c " -# composer install --optimize-autoloader && -# npm install && -# npm run build && -# php artisan migrate --force && -# php artisan optimize:clear -# " -# - name: 4. Final Permission Fix -# run: | -# # 這裡用 1000:1000 是因為你 docker-compose 裡設定了 UID/GID -# docker exec koori-erp-laravel chown -R 1000:1000 /var/www/html -# docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage -# - name: 5. restart container -# run: | -# docker restart koori-erp-laravel - -# name: Koori-ERP-Demo-Deploy -# on: -# push: -# branches: -# - main -# jobs: -# sync-update: -# runs-on: demo-server -# steps: -# - name: 1. Checkout New Code -# run: | -# rm -rf ./* -# git clone -b main http://server:3000/${{ gitea.repository }}.git . - -# - name: 2. Stop Container First -# run: | -# # 先停止容器 -# docker compose down || true - -# - name: 3. Prepare Environment -# run: | -# # 建立 .env(在宿主機) -# cp .env.example .env -# sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env - -# - name: 4. Start Container (Files Already Ready) -# run: | -# # 啟動容器(檔案已經準備好,透過 volume 自動掛載) -# docker compose up -d --build --force-recreate --wait -# tar --exclude='.git' --exclude='node_modules' --exclude='vendor' -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html -# - name: 5. Backend & Frontend Build -# run: | -# docker exec -w /var/www/html koori-erp-laravel sh -c " -# composer install --optimize-autoloader && -# npm install && -# npm run build && -# php artisan migrate --force && -# php artisan optimize:clear -# " - -# - name: 6. Final Permission Fix -# run: | -# docker exec koori-erp-laravel chown -R 1000:1000 /var/www/html -# docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage - -name: Koori-ERP-Demo-Deploy on: push: branches: + - demo - main jobs: - sync-update: + # --- 1. Demo 環境部署 (103 本機) --- + deploy-demo: + if: github.ref == 'refs/heads/demo' runs-on: ubuntu-latest steps: - - name: 1. Checkout New Code + - name: Checkout Code uses: actions/checkout@v3 - with: - github-server-url: http://192.168.0.103:3000 - repository: ${{ gitea.repository }} - # - name: 1. Checkout New Code - # run: | - # # 進入工作目錄並直接用 git 抓 code,完全不需要 Node - # rm -rf ./* - # git clone -b main http://server:3000/${{ gitea.repository }}.git . - - name: 2. Sync Files to Running Container - run: | - # A. 執行複製 + - name: Deploy to 103 Demo + run: | cp .env.example .env - sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.APP_KEY }}|g" .env - # B. 確保容器環境是最新的 - # --wait 會確保容器真的跑起來了才執行下一步 - docker compose up -d --build --force-recreate --wait + # 設定 Demo 專用的 Key + sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.DEMO_APP_KEY }}|g" .env + docker compose up -d --build --wait + # 同步檔案到容器內 + tar --exclude='.git' --exclude='node_modules' --exclude='vendor' -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html + docker exec -u 1000:1000 koori-erp-laravel sh -c "composer install && npm install && npm run build && php artisan migrate --force && php artisan optimize:clear" - # C. 執行精簡化複製 (關鍵優化!) - # 排除 .git, node_modules, vendor 這三大黑洞 - tar --exclude='.git' \ - --exclude='node_modules' \ - --exclude='vendor' \ - -cf - . | docker exec -i koori-erp-laravel tar -xf - -C /var/www/html + # --- 2. 正式環境部署 (erp.koori.tw:2224) --- + # deploy-production: + # if: github.ref == 'refs/heads/main' + # runs-on: ubuntu-latest + # steps: + # - name: Checkout Code + # uses: actions/checkout@v3 - docker exec koori-erp-laravel chown -R 1000:1000 /var/www/html + # # 使用 rsync 透過 2224 Port 推送代碼 + # - name: Push Code to Production + # run: | + # # 注意:這裡的 -e 指定了 ssh port 2224 + # rsync -avz --delete \ + # --exclude='.git' \ + # --exclude='node_modules' \ + # --exclude='vendor' \ + # -e "ssh -p 2224 -o StrictHostKeyChecking=no" \ + # ./ root@erp.koori.tw:/var/www/koori-erp-prod/ - - - name: 3. Backend & Frontend Build - run: | - docker exec -u 1000:1000 -w /var/www/html koori-erp-laravel sh -c " - composer install --optimize-autoloader && - npm install && - npm run build && - php artisan migrate --force && - php artisan optimize:clear - " - - - name: 4. Final Permission Fix - run: | - # 統一修正權限 - docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache + # # 遠端執行 Docker 指令 + # - name: Remote Docker Commands + # uses: appleboy/ssh-action@master + # with: + # host: erp.koori.tw + # port: 2224 # <--- 這裡指定了 2224 Port + # username: root + # key: ${{ secrets.PROD_SSH_KEY }} + # script: | + # cd /var/www/koori-erp-prod + + # # 1. 確保 .env 存在 (建議正式機手動維護 .env,不隨 git 連動) + # if [ ! -f .env ]; then cp .env.example .env; fi + + # # 2. 啟動容器 + # docker compose up -d --build + + # # 3. 執行 Laravel 正式環境優化流程 + # docker exec -u 1000:1000 koori-erp-laravel-prod sh -c " + # composer install --no-dev --optimize-autoloader && + # npm install && + # npm run build && + # php artisan migrate --force && + # php artisan config:cache && + # php artisan route:cache && + # php artisan view:cache + # " \ No newline at end of file