[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 欄位。
This commit is contained in:
parent
2bc467bb84
commit
2aa0bf23ab
@ -111,19 +111,19 @@ Mqtt3Client client = MqttClient.builder()
|
|||||||
|
|
||||||
所有 Payload 統一採用 **JSON** 格式,字母一律為 **snake_case**。
|
所有 Payload 統一採用 **JSON** 格式,字母一律為 **snake_case**。
|
||||||
|
|
||||||
### 3.1 心跳上報 (Heartbeat) - `machine/{id}/heartbeat`
|
### 3.1 心跳上報 (Heartbeat) - `machine/{serial_no}/heartbeat`
|
||||||
比照原 B010 邏輯,但去除不必要的 HTTP Header 開銷。
|
這是機台最主要的狀態上報包,整合了關鍵的機台資訊。
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"current_page": 1,
|
"firmware_version": "2.1.6",
|
||||||
"firmware_version": "1.0.5",
|
"temperature": 20
|
||||||
"temperature": 25.5,
|
|
||||||
"door_status": 0,
|
|
||||||
"timestamp": "2026-04-14T09:00:00+08:00"
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> 為了降低傳輸開銷,目前僅要求上報 **韌體版本** 與 **溫度**。其餘狀態如連線/斷線已透過 LWT 與 $SYS 事件處理。
|
||||||
|
|
||||||
### 3.2 異常上報 (Error/Event) - `machine/{id}/error`
|
### 3.2 異常上報 (Error/Event) - `machine/{id}/error`
|
||||||
比照原 B013 邏輯。
|
比照原 B013 邏輯。
|
||||||
|
|
||||||
|
|||||||
@ -40,10 +40,16 @@ jobs:
|
|||||||
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml up -d --build --wait
|
WWWGROUP=1000 WWWUSER=1000 docker compose -f compose.yaml up -d --build --wait
|
||||||
|
|
||||||
- name: Step 2 - Deploy Code
|
- name: Step 2 - Deploy Code
|
||||||
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
tar --ignore-failed-read --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage' --exclude='bootstrap/cache' -cf - . | docker exec -i star-cloud-laravel tar -xf - -C /var/www/html/
|
deploy_to() {
|
||||||
tar --ignore-failed-read --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage' --exclude='bootstrap/cache' -cf - . | docker exec -i star-cloud-queue tar -xf - -C /var/www/html/
|
tar --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage' --exclude='bootstrap/cache' -cf - . 2>/dev/null | docker exec -i "$1" tar -xf - -C /var/www/html/
|
||||||
tar --ignore-failed-read --exclude='.git' --exclude='node_modules' --exclude='vendor' --exclude='storage' --exclude='bootstrap/cache' -cf - . | docker exec -i star-cloud-mqtt-worker tar -xf - -C /var/www/html/
|
# tar exit 1 = "file changed as we read it" (non-fatal), exit 2+ = fatal
|
||||||
|
[ "${PIPESTATUS[0]}" -le 1 ]
|
||||||
|
}
|
||||||
|
deploy_to star-cloud-laravel
|
||||||
|
deploy_to star-cloud-queue
|
||||||
|
deploy_to star-cloud-mqtt-worker
|
||||||
docker exec star-cloud-laravel sh -c "
|
docker exec star-cloud-laravel sh -c "
|
||||||
chown -R 1000:1000 /var/www/html &&
|
chown -R 1000:1000 /var/www/html &&
|
||||||
mkdir -p /.npm && chown -R 1000:1000 /.npm &&
|
mkdir -p /.npm && chown -R 1000:1000 /.npm &&
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user