star-cloud/.gitea/workflows/deploy-prod.yaml
sky121113 0278438241 [FEAT] 新增正式環境 CI/CD 自動化部署流程
1. 實作 Gitea Actions 透過 SSH 與 rsync 同步程式碼至正式環境主機 (34.84.169.132)。
2. 整合遠端 Docker 容器重啟、Composer 與 NPM 依賴安裝、前端編譯及資料庫遷移等自動化指令。
3. 加入 RoleSeeder 與 AdminUserSeeder 預設權限與帳號資料填充。
2026-05-15 11:03:04 +08:00

44 lines
1.6 KiB
YAML

name: star-cloud-deploy-production
on:
push:
branches:
- main # 或是正式環境分支
jobs:
deploy-production:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.PROD_SSH_PRIVATE_KEY }}
known_hosts: ${{ secrets.PROD_KNOWN_HOSTS }}
- name: Step 1 - Sync Code to Server
run: |
rsync -avz --delete \
--exclude='.git' \
--exclude='node_modules' \
--exclude='vendor' \
--exclude='storage' \
--exclude='bootstrap/cache' \
./ twsystem1003@34.84.169.132:~/star-cloud/
- name: Step 2 - Execute Remote Deployment Commands
run: |
ssh twsystem1003@34.84.169.132 "cd ~/star-cloud && \
WWWGROUP=1001 WWWUSER=1001 docker compose up -d --build && \
sudo docker exec star-cloud-laravel composer install --no-dev --optimize-autoloader && \
sudo docker exec star-cloud-laravel npm install && \
sudo docker exec star-cloud-laravel npm run build && \
sudo docker exec star-cloud-laravel php artisan migrate --force && \
sudo docker exec star-cloud-laravel php artisan optimize:clear && \
sudo docker exec star-cloud-laravel php artisan optimize && \
sudo docker exec star-cloud-laravel php artisan db:seed --class=RoleSeeder --force && \
sudo docker exec star-cloud-laravel php artisan db:seed --class=AdminUserSeeder --force && \
docker restart star-cloud-mqtt-worker"