sky121113
|
24d7602f5a
|
[FIX] 以 appleboy/ssh-action 重構正式環境部署腳本
1. 改用 appleboy/ssh-action 取代 ssh 字串指令,對齊 deploy-remote-template 的架構。
2. Step 1 改回用 rsync 同步程式碼,SSH 金鑰由 runner 自行注入,移除 shimataro/ssh-key-action 依賴。
3. 加入智慧重建判斷(Step 2):僅在 Dockerfile/compose.yaml 有變更時才執行 --build,加速一般部署。
4. 完整對齊 Step 3 的 chown / composer / npm / artisan 初始化邏輯,確保與 demo 部署行為一致。
|
2026-05-15 11:14:49 +08:00 |
|
sky121113
|
1401912059
|
[FIX] 重構正式環境部署腳本,改用 SSH+tar 方式同步程式碼
1. 棄用 rsync 直接同步方案,改用 tar 打包傳送再遠端解壓,與 demo 部署邏輯一致。
2. 將 docker compose 換成 docker-compose,修正 GCP 主機僅有舊版 v1 CLI 的相容問題。
3. 拆分 Step 步驟結構,對齊 demo workflow 的 Step 0~5 風格。
4. docker exec 加入 -u 1001:1001 確保產出檔案不會被 root 佔用。
|
2026-05-15 11:12:05 +08:00 |
|
sky121113
|
9031f5fd4e
|
[FIX] 修復正式環境 CI/CD rsync 權限與 sudo 問題
1. 將 twsystem1003 加入 docker 群組,移除腳本中的 sudo 需求。
2. 在 docker exec 指令中加入 -u 1001:1001,避免產生 root 權限的編譯檔案導致 rsync 同步失敗。
|
2026-05-15 11:07:39 +08:00 |
|
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 |
|
sky121113
|
a8b150cadc
|
[FIX] 移除 CI/CD 中不存在的 emqx_ctl 指令
|
2026-04-22 13:37:59 +08:00 |
|
sky121113
|
4b8436e6c2
|
[REFACTOR] 移除 MQTT $SYS 監聽機制並優化 CI/CD 流程
1. 移除 MQTT Gateway 對 $SYS 系統主題的訂閱與解析邏輯,改由遺囑 (Last Will) 統一處理上下線狀態。
2. 更新 EMQX ACL 設定,移除 Gateway 的系統主題存取權限。
3. 優化 CI/CD 流程 (deploy-demo.yaml):將 EMQX 重啟改為熱重載 (Reload),並新增 MQTT Worker 自動重啟。
|
2026-04-22 13:33:42 +08:00 |
|
sky121113
|
6603828ddc
|
[FIX] 用中間檔案取代 tar pipe,徹底避開 pipefail
改為先 tar -cf /tmp/deploy.tar,再 docker exec tar -xf < 檔案。
不使用 pipe = 不受 pipefail 影響。
|| [ $? -le 1 ] 讓 tar exit 1 (warning) 通過,exit 2+ 才失敗。
|
2026-04-21 17:02:07 +08:00 |
|
sky121113
|
99463a762e
|
[REFACTOR] 簡化 CI/CD 部署腳本 - 從根本解決 tar 問題
問題根源:
- tar 的 'file changed as we read it' 是警告 (exit 1),非錯誤
- 之前用 PIPESTATUS、pipefail toggle、wait_for_container 等 workaround
處理,導致腳本越來越複雜且脆弱
根本解法:
1. tar --warning=no-file-changed: 讓 tar 忽略此警告並維持 exit 0
2. 三個容器共享同一份 volume,只需同步一次到主容器
3. 移除所有 workaround 程式碼 (PIPESTATUS/pipefail/wait_for_container)
Step 2 從 ~50 行縮減至 ~15 行。
|
2026-04-21 16:59:27 +08:00 |
|
sky121113
|
a15eeabde7
|
[FIX] 修復 pipefail 導致 tar 警告中斷部署腳本
Gitea Actions 的 bash shell 預設啟用 set -eo pipefail。
tar 的 exit 1 (file changed as we read it) 是警告非錯誤,
但 pipefail 會讓它變成管線失敗,set -e 立即中斷腳本。
修復:在 tar 管線前暫時 set +o pipefail,
手動檢查 PIPESTATUS 後再恢復 set -o pipefail。
|
2026-04-21 16:57:03 +08:00 |
|
sky121113
|
d3cb9b4fee
|
[FIX] 根因修復 - 共享 Volume 下不需對每個容器重複同步
根因:三個容器 (laravel, queue, mqtt-worker) 共享同一份
volume mount (.:/var/www/html)。對 laravel 容器做 tar 同步時,
queue/mqtt-worker 會同時看到檔案變動,導致它們 crash → restart。
接著對 queue 容器做冗餘同步時就會撞上 restarting 狀態。
修復:
1. 只對主容器 (star-cloud-laravel) 同步一次即可
2. 同步完成後等待 worker 容器從短暫重啟中恢復
3. 移除對 queue/mqtt-worker 的冗餘 tar 同步
|
2026-04-21 16:54:45 +08:00 |
|
sky121113
|
88741dc5ae
|
[FIX] 修復 CI/CD 部署時序競爭 - 容器重啟導致 docker exec 隨機失敗
根因:queue/mqtt-worker 容器可能處於 restarting 狀態,
docker exec 在此狀態下會被拒絕 (exit 1),導致部署隨機失敗。
修復:在 deploy_to 函式中加入 wait_for_container 重試邏輯,
在執行 docker exec 前先等待容器進入 running 狀態 (最多 30 秒)。
|
2026-04-21 16:52:45 +08:00 |
|
sky121113
|
240667d74f
|
[FIX] 修正 CI/CD Bash PIPESTATUS 重置問題
1. 將 tar_status 與 docker_status 的賦值合併到同一行,解決 local 指令會重置 PIPESTATUS 導致變數為空的問題。
2. 增加變數非空檢查,預防非預期的語法錯誤。
3. 加強錯誤輸出的 Debug 資訊。
|
2026-04-21 16:39:08 +08:00 |
|
sky121113
|
6eb9de4812
|
[FIX] 強化 CI/CD Step 2 部署腳本與錯誤診斷
1. 改進 deploy_to 函式,同時驗證 tar 與 docker exec 的結束碼,避免靜默失敗。
2. 增加同步過程的日誌輸出 (tar/docker status),提升故障排查效率。
3. 確保任一容器同步失敗時立即中斷流程,防止不完整的部署。
|
2026-04-21 16:37:50 +08:00 |
|
sky121113
|
2aa0bf23ab
|
[FIX] 優化 CI/CD 部署流程與更新 MQTT 心跳規範
1. 修復 .gitea/workflows/deploy-demo.yaml:改用 bash 函式處理 tar 同步,容許 exit code 1 (檔案變動警告) 並攔截致命錯誤。
2. 更新 .agents/skills/mqtt-communication-specs/SKILL.md:簡化心跳上報 (Heartbeat) 規範,僅保留 firmware_version 與 temperature 欄位。
|
2026-04-21 16:01:32 +08:00 |
|
sky121113
|
2bc467bb84
|
[FIX] 修復 CI/CD 部署時 tar 因檔案變動而報錯的問題
1. 在 deploy-demo.yaml 的 tar 指令加入 --ignore-failed-read 預防非致命報錯。
2. 排除 storage 與 bootstrap/cache 目錄的上傳,避免與容器內運作中的檔案衝突。
|
2026-04-21 15:52:09 +08:00 |
|
sky121113
|
9844607e84
|
perf(ci): use tar stream for deployment to improve stability
|
2026-04-21 14:44:02 +08:00 |
|
sky121113
|
c3b623e5e0
|
[FIX] 修正 CI/CD 中 docker run 的掛載問題,使用 pipe 方式同步設定檔
|
2026-04-21 13:13:26 +08:00 |
|
sky121113
|
15c0db6742
|
[REFACTOR] 整理並合併 CI/CD 準備步驟 (Step 0)
|
2026-04-21 13:11:58 +08:00 |
|
sky121113
|
cec70f38b5
|
[FIX] 增加 Step 0.2 同步設定檔至宿主機,解決 EMQX 掛載失敗問題
|
2026-04-21 13:08:12 +08:00 |
|
sky121113
|
cc966f2de7
|
[FIX] 優化 CI/CD 掛載邏輯,避免 Docker 自動誤建目錄
|
2026-04-21 13:06:20 +08:00 |
|
sky121113
|
6ef7e2211c
|
[FIX] 修正 CI/CD .env 被誤建為目錄的問題
|
2026-04-21 13:04:41 +08:00 |
|
sky121113
|
bb426abbc0
|
[FIX] 修正 CI/CD 掛載錯誤,增加 acl.conf 目錄清理步驟
|
2026-04-21 13:02:44 +08:00 |
|
sky121113
|
f4f2ca9175
|
[STYLE] 調整 Workflow 檔案格式
1. 移除 .gitea/workflows/deploy-demo.yaml 中多餘的空行以符合規範。
|
2026-04-21 08:53:51 +08:00 |
|
sky121113
|
3a31a1a593
|
[STYLE] 調整 Workflow 檔案格式以符合規範
1. 在 .gitea/workflows/deploy-demo.yaml 中優化程式碼區塊間距。
|
2026-04-21 08:23:56 +08:00 |
|
sky121113
|
bf43a33df3
|
[FEAT] 整合 MQTT 資料流自動化與環境埠號修復
1. 整合 MQTT Gateway 並支援動態 Redis Key 前綴隔離,解決多環境衝突。
2. 修正本地開發環境與 Demo 環境的埠號映射 (80/8080) 與 Vite HMR (5175) 設定。
3. 更新 CI/CD 部署流程,新增自動同步程式碼至 MQTT Worker 與 Queue 容器。
4. 擴充 .env.example 以提供完整的 MQTT/EMQX 相關變數範本。
5. 更新模擬腳本以符合現有測試資料。
|
2026-04-17 13:22:46 +08:00 |
|
sky121113
|
e3ad7dd44f
|
[DOCS] 修正並對齊 Demo 環境基礎設施資訊
1. 更新 README.md 與 framework.md 中的 Demo 環境網域、伺服器指令、部署路徑。
2. 更新 Gitea Workflow (.gitea/workflows/) 中的 Gitea 官方網址 (gitea.setdomains.work)。
3. 更新遠端部署模板中的舊 IP、路徑與機器人信箱,確保全站文件一致性。
|
2026-04-17 10:30:05 +08:00 |
|
sky121113
|
2de80cd1bf
|
fix: ensure .env is visible to docker compose up for environment variable interpolation
|
2026-04-16 17:22:12 +08:00 |
|
sky121113
|
420263680d
|
fix: chown /.npm cache and clean stale node_modules for npm install
|
2026-04-16 17:11:54 +08:00 |
|
sky121113
|
ebc8b7943f
|
fix: chown after docker cp to fix composer permission denied
|
2026-04-16 17:08:45 +08:00 |
|
sky121113
|
3cacf9d80f
|
fix: use docker cp to inject source code into container (bypass volume mount issue)
|
2026-04-16 17:06:59 +08:00 |
|
sky121113
|
d8f41e87b4
|
fix: force no-cache build to ensure composer is installed in image
|
2026-04-16 16:31:42 +08:00 |
|
sky121113
|
daddfe0f85
|
fix: use bash and export PATH to resolve composer not found in docker exec
|
2026-04-16 16:28:06 +08:00 |
|
sky121113
|
4b8e9f7025
|
fix: align container name with compose.yaml in gitea actions
|
2026-04-16 16:14:21 +08:00 |
|
sky121113
|
b56bdc624b
|
fix: correct docker-compose filename in workflow
|
2026-04-16 15:15:50 +08:00 |
|
sky121113
|
b90e05a91a
|
fix: switch to ubuntu-latest labels for compatibility with current runner
|
2026-04-16 15:12:14 +08:00 |
|
sky121113
|
566448fe94
|
chore: setup gitea actions internal deployment for demo-sc-103
|
2026-04-16 15:07:15 +08:00 |
|
sky121113
|
f60e5a9c72
|
[FEAT] 優化機台 API 通訊識別、補齊前端必填驗證、並配置 Demo 站隊列自動化部署 🦾🚀
|
2026-03-26 13:09:48 +08:00 |
|
sky121113
|
cd34724c76
|
[FIX] 在部署流程中加入 php artisan storage:link 以確保頭像與靜態資源連結正常
|
2026-03-18 09:36:58 +08:00 |
|
sky121113
|
42f96d54c3
|
[FIX] 修正部署流程:錨定 rsync 排除路徑,確保 resources/views/vendor 資料夾能正確同步
|
2026-03-13 17:40:31 +08:00 |
|
sky121113
|
56daf8940b
|
[FEAT] 優化部署流程:加入 RoleSeeder 與 AdminUserSeeder,並實作權限系統基礎架構與多租戶隔離機制
|
2026-03-13 17:35:22 +08:00 |
|
sky121113
|
21e064ff91
|
[FIX] 強制 HTTPS 與信任代理以修正 Mixed Content 問題,並加入 CI/CD 自動同步 main 邏輯
|
2026-03-06 17:16:00 +08:00 |
|
sky121113
|
adea7feb7b
|
[STYLE] 新增 deploy-prod.yaml 佔位檔案以觸發 Gitea 側邊欄分類
|
2026-03-06 17:09:16 +08:00 |
|
sky121113
|
2a6170b4ce
|
[STYLE] 重構 CI/CD 文件名為 deploy-demo.yaml 以對齊 ERP UI 規範
|
2026-03-06 17:07:02 +08:00 |
|
sky121113
|
acc81b2156
|
[FEAT] 重構 CI/CD 工作流並修正容器端口配置以對齊 Demo 環境
|
2026-03-06 16:49:13 +08:00 |
|
sky121113
|
88c3678a4d
|
chore: 加入 Docker 8.5 Dockerfile 並恢復 deploy.yaml 原始版本
- 加入 docker/8.5 目錄(從 Laravel Sail 8.4 複製)
- 恢復 deploy.yaml 到原始版本
|
2026-01-13 11:04:58 +08:00 |
|
sky121113
|
649cbaab02
|
fix: 修正部署腳本用戶權限問題
- 將 docker exec 用戶從 -u 1000:1000 改為 -u sail(容器內 sail UID 是 1337)
- 簡化權限修正為 chown -R sail:sail /var/www/html
- 同步更新 Demo 與正式環境的部署腳本
問題根因:容器內 sail 用戶 UID 是 1337,非預期的 1000,導致 npm install 無權寫入
|
2026-01-13 10:54:29 +08:00 |
|
sky121113
|
9c2ef60463
|
fix: 更新部署腳本,完全清除 node_modules 後重建以解決權限問題
- 在 npm install 前先 rm -rf node_modules 再重建
- 確保 /.npm 和 node_modules 都有正確的 sail 擁有者
- 同步更新 Demo 與正式環境的部署腳本
|
2026-01-13 10:48:20 +08:00 |
|
sky121113
|
f67a1dc11e
|
style: 調整 deploy.yaml 格式
|
2026-01-13 10:45:13 +08:00 |
|
sky121113
|
a578c7f261
|
fix: 修正部署流程中的 npm 權限問題
- 在 npm install 前先用 root 身份修正 /.npm 和 node_modules 權限
- 加入 npm cache clean --force 避免快取權限衝突
- 同時修正 Demo 與正式環境的部署腳本
- 解決 EACCES 與 ENOTEMPTY 錯誤
|
2026-01-13 10:39:05 +08:00 |
|
sky121113
|
55ba08c88f
|
chore: 更新 deploy.yaml 部署流程
|
2026-01-12 13:21:07 +08:00 |
|