[CHORE] APK workflow 強殺防呆 + 新增 Claude Code slash command
- .agents/workflows/{compiler,release}-apk.md:Gradle Daemon 終止改防呆——
先優雅 ./gradlew --stop,僅在仍殘留時才升級終止(先 TERM 再 KILL),
避免無差別 pkill -9 撞鎖導致 clean 編譯隨機失敗。
- .claude/commands/{compiler,release}-apk.md:新增對應 slash command(薄包裝,
指向 .agents/workflows 單一真相來源,處理參數注入與 Java 17 環境)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
53ea3dafa9
commit
588da4a2eb
@ -24,7 +24,17 @@ description: 自動編譯 Android APK、輸出至專屬目錄並安裝至實體
|
||||
```bash
|
||||
// turbo
|
||||
# 終止殘留的 Gradle Daemon 程序,避免多個 Daemon 互搶資源,同時避免誤殺 VS Code Gradle 擴充功能
|
||||
./gradlew --stop 2>/dev/null; pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null; sleep 3
|
||||
# 防呆:先優雅 --stop;僅在仍殘留時才升級終止(先 TERM 再 KILL),避免無差別強殺撞鎖導致 clean 編譯隨機失敗
|
||||
./gradlew --stop 2>/dev/null || true
|
||||
sleep 2
|
||||
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
|
||||
pkill -TERM -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
|
||||
sleep 3
|
||||
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
|
||||
pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
|
||||
sleep 2
|
||||
fi
|
||||
fi
|
||||
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
cd /home/mama/projects/TaiwanStar_general_size_s_Chengwai
|
||||
|
||||
@ -25,7 +25,17 @@ description: 自動編譯正式發行 Release APK、升級 Patch 版本號、並
|
||||
```bash
|
||||
// turbo
|
||||
# 終止殘留的 Gradle Daemon 程序,避免多個 Daemon 互搶資源,同時避免誤殺 VS Code Gradle 擴充功能
|
||||
./gradlew --stop 2>/dev/null; pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null; sleep 3
|
||||
# 防呆:先優雅 --stop;僅在仍殘留時才升級終止(先 TERM 再 KILL),避免無差別強殺撞鎖導致 clean 編譯隨機失敗
|
||||
./gradlew --stop 2>/dev/null || true
|
||||
sleep 2
|
||||
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
|
||||
pkill -TERM -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
|
||||
sleep 3
|
||||
if pgrep -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" >/dev/null 2>&1; then
|
||||
pkill -9 -f "org.gradle.launcher.daemon.bootstrap.GradleDaemon" 2>/dev/null || true
|
||||
sleep 2
|
||||
fi
|
||||
fi
|
||||
|
||||
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
cd /home/mama/projects/TaiwanStar_general_size_s_Chengwai
|
||||
|
||||
22
.claude/commands/compiler-apk.md
Normal file
22
.claude/commands/compiler-apk.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
description: 編譯 Debug APK、導出 outputs/、偵測到設備則安裝(晟崴/通用/中國醫,可選硬體尺寸)
|
||||
argument-hint: [General|Chengwai|Cmuh] [S9|S12]
|
||||
allowed-tools: Bash, Read, Edit
|
||||
---
|
||||
|
||||
執行本專案的 APK 編譯安裝 workflow,定義於 `.agents/workflows/compiler-apk.md`(單一真相來源)。
|
||||
|
||||
本次參數:「$ARGUMENTS」(第一個=Flavor,第二個=硬體 S9/S12;可能為空)
|
||||
|
||||
## 執行方式
|
||||
1. 先 Read `.agents/workflows/compiler-apk.md`,理解步驟零~三。
|
||||
2. 步驟零(版號):執行 `git status --porcelain app/`;若有未提交改動且本輪對話尚未升過版,讀 `app/build.gradle` 把 `verPatch` 遞增 1 並回報新版號。
|
||||
3. 步驟一~三:依序執行 workflow 內每個 bash 區塊。**關鍵**:workflow 的 bash 以位置參數取得 Flavor 與硬體,所以執行每個區塊前,先在區塊最前面注入本次參數,例如:
|
||||
|
||||
set -- $ARGUMENTS
|
||||
|
||||
讓 workflow 內的位置參數正確解析(第一個=Flavor、第二個=S9/S12)。若本次無參數,workflow 自身預設 Chengwai+智慧硬體。
|
||||
4. 環境用 workflow 指定的 Java 17(`JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64`)。
|
||||
5. 編譯/導出屬長任務 → 用 run_in_background,完成再回報。
|
||||
6. 步驟三會偵測 adb 設備:有連設備才安裝並啟動 App;沒設備就保留 APK 結束。
|
||||
7. 最後完整回報 workflow 輸出的「後台 keyin 參考資料」(Flavor / versionName / versionCode / APK 檔名)。
|
||||
23
.claude/commands/release-apk.md
Normal file
23
.claude/commands/release-apk.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
description: 正式版 Release APK 打包、升 Patch 版號、產出 OTA keyin 與 Git tag 指引(晟崴/通用/中國醫)
|
||||
argument-hint: [General|Chengwai|Cmuh]
|
||||
allowed-tools: Bash, Read, Edit
|
||||
---
|
||||
|
||||
執行本專案的正式發版 workflow,定義於 `.agents/workflows/release-apk.md`(單一真相來源)。
|
||||
|
||||
本次參數:「$ARGUMENTS」(Flavor;可能為空,預設 Chengwai)
|
||||
|
||||
## 執行方式
|
||||
1. 先 Read `.agents/workflows/release-apk.md`,理解步驟零~三。
|
||||
2. 步驟零(OTA 鐵律):讀 `app/build.gradle` 把 `verPatch` 遞增 1(確保 versionCode 變大可觸發 OTA),回報新版號。
|
||||
3. 步驟一~三:依序執行 workflow 內每個 bash 區塊。**關鍵**:workflow 的 bash 以位置參數取得 Flavor,執行每個區塊前先注入本次參數:
|
||||
|
||||
set -- $ARGUMENTS
|
||||
|
||||
無參數時預設 Chengwai。硬體:Cmuh→S9XYU,其餘→S12XYU。
|
||||
4. 環境用 Java 17(`JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64`);Release 會跑混淆與 lintVital,較久 → 用 run_in_background。
|
||||
5. 步驟二導出正式簽章 APK 到 `outputs/` 並印出 OTA 後台 keyin 對照資料。
|
||||
6. 步驟三回報 Git 發版 tag 指引。
|
||||
|
||||
> 注意:這是「正式發版」,會升版號並產正式簽章 APK。除非使用者明確指示,不要自行 commit / push / 打 tag,只回報指引。
|
||||
Loading…
Reference in New Issue
Block a user