1. 實作 Gitea Actions 透過 SSH 與 rsync 同步程式碼至正式環境主機 (34.84.169.132)。 2. 整合遠端 Docker 容器重啟、Composer 與 NPM 依賴安裝、前端編譯及資料庫遷移等自動化指令。 3. 加入 RoleSeeder 與 AdminUserSeeder 預設權限與帳號資料填充。
44 lines
1.6 KiB
YAML
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"
|