Files
star-erp/.gitea/workflows/deploy.yaml
sky121113 04e4ec0dca
All checks were successful
Koori-ERP-Deploy-System / deploy-demo (push) Successful in 1m11s
ddd
2026-01-06 10:19:18 +08:00

108 lines
4.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Koori-ERP-Deploy-System
on:
push:
branches:
- demo
- main
jobs:
# --- 1. Demo 環境部署 (103 本機) ---
deploy-demo:
if: github.ref == 'refs/heads/demo'
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
github-server-url: http://192.168.0.103:3000
repository: ${{ github.repository }}
# - name: Deploy to 103 Demo
# run: |
# cp .env.example .env
# # 設定 Demo 專用的 Key
# sed -i "s|APP_KEY=.*|APP_KEY=${{ secrets.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"
- 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
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: 4. Final Permission Fix
run: |
# 統一修正權限
docker exec koori-erp-laravel chmod -R 775 /var/www/html/storage /var/www/html/bootstrap/cache
# --- 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
# # 使用 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/
# # 遠端執行 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
# "