57 lines
1.8 KiB
Markdown
57 lines
1.8 KiB
Markdown
# TT-015 — APK-Retention-Script
|
|
|
|
**Type:** Task
|
|
**Priority:** High
|
|
**Labels:** tooling, shell
|
|
**Depends on:** —
|
|
**Blocks:** TT-016 (build_android Make-Target)
|
|
|
|
---
|
|
|
|
## Summary
|
|
Shell-Script `scripts/apk_retention.sh` das nach jedem APK-Build die Build-Historie
|
|
bereinigt. Wird vom Makefile als letzter Schritt von `build_android` aufgerufen.
|
|
|
|
## Retention-Strategie
|
|
|
|
### Regel 1 — Aktuelle Minor-Version
|
|
In der Minor-Version die gerade entwickelt wird (höchste Minor):
|
|
- Behalte die **letzten 15 APKs** nach Build-Nummer
|
|
- Lösche ältere
|
|
|
|
### Regel 2 — Abgeschlossene Minor-Versionen
|
|
Für ältere Minor-Versionen (z.B. 0.1.x wenn aktuell 0.2.x entwickelt wird):
|
|
- Behalte immer genau **eine APK pro Minor-Version** (die mit der höchsten Build-Nummer)
|
|
- Das ist der "Release-Marker" für diese Version
|
|
|
|
### Beispiel
|
|
```
|
|
Aktuell: 0.1.x (Build +1 bis +20 vorhanden)
|
|
→ Behalte +6 bis +20 (15 neueste)
|
|
→ Lösche +1 bis +5
|
|
|
|
Später: 0.2.x existiert, 0.1.x hat +1 bis +20
|
|
→ 0.1.x: Behalte nur +20 (höchste = Release-Marker)
|
|
→ 0.2.x: Behalte letzte 15
|
|
```
|
|
|
|
## APK-Dateiformat
|
|
`timetrack-{VERSION}+{BUILD}.apk`
|
|
Beispiele:
|
|
- `timetrack-0.1.0+1.apk`
|
|
- `timetrack-0.1.0+15.apk`
|
|
- `timetrack-0.2.0+3.apk`
|
|
|
|
## Acceptance Criteria
|
|
- [ ] Script nimmt `--dir` als Argument (default: `build/apk`)
|
|
- [ ] Erkennt Minor-Versionen korrekt (0.1, 0.2, etc.)
|
|
- [ ] Behält letzte 15 in aktueller Minor-Version
|
|
- [ ] Behält je eine (neueste) APK für ältere Minor-Versionen
|
|
- [ ] Löscht zugehörige `.sha256`-Dateien mitgleich
|
|
- [ ] Gibt Liste der gelöschten Dateien aus
|
|
- [ ] Gibt Liste der behaltenen Dateien aus
|
|
- [ ] Tut nichts wenn weniger als 16 APKs vorhanden (keine Löschung nötig)
|
|
- [ ] Löscht niemals den `timetrack.apk`-Symlink
|
|
|
|
## Files to create
|
|
- `scripts/apk_retention.sh` (ausführbar, `chmod +x`)
|