docs(qa-261): ajoute documents conformité et scripts QA pour release Android

- Ajoute privacy-policy-v1.md et release-compliance-checklist.md
- Ajoute documents QA gates #238-#243
- Ajoute scripts de validation repo-only et device runbooks
- Prépare checklists exécutables avant upload Play fermé

Ticket #261
This commit is contained in:
2026-08-28 23:11:16 +02:00
parent 313e755895
commit d4df3822b7
13 changed files with 1623 additions and 0 deletions

154
tool/qa_device_watch_companion.sh Executable file
View File

@ -0,0 +1,154 @@
#!/usr/bin/env bash
set -euo pipefail
PROJECT_ROOT="/home/anthony/Documents/Projects/GameTime"
ARTIFACT_BASE="${ARTIFACT_BASE:-$PROJECT_ROOT/.ideai/artifacts/qa-device}"
PHONE_SERIAL="${PHONE_SERIAL:-}"
WATCH_SERIAL="${WATCH_SERIAL:-}"
PACKAGE_NAME="${PACKAGE_NAME:-com.idea.gametime}"
WATCH_PACKAGE_NAME="${WATCH_PACKAGE_NAME:-com.idea.gametime}"
usage() {
cat <<'EOF'
Usage:
./tool/qa_device_watch_companion.sh start
./tool/qa_device_watch_companion.sh stop <artifact_dir>
Environment:
PHONE_SERIAL Optional adb serial for the phone under test
WATCH_SERIAL Optional adb serial for the Wear device under test
ARTIFACT_BASE Optional artifact root
PACKAGE_NAME Optional phone package name
WATCH_PACKAGE_NAME Optional watch package name
EOF
}
adb_phone() {
if [[ -n "$PHONE_SERIAL" ]]; then
adb -s "$PHONE_SERIAL" "$@"
else
adb "$@"
fi
}
adb_watch() {
[[ -n "$WATCH_SERIAL" ]] || {
echo "WATCH_SERIAL is required for watch companion QA." >&2
exit 1
}
adb -s "$WATCH_SERIAL" "$@"
}
require_adb() {
command -v adb >/dev/null 2>&1 || {
echo "adb not found in PATH." >&2
exit 1
}
adb start-server >/dev/null
adb_phone get-state >/dev/null 2>&1 || {
echo "No phone adb device available." >&2
exit 1
}
adb_watch get-state >/dev/null 2>&1 || {
echo "No watch adb device available." >&2
exit 1
}
}
timestamp() {
date -u +"%Y%m%dT%H%M%SZ"
}
start_capture() {
require_adb
local dir="$ARTIFACT_BASE/watch-companion-$(timestamp)"
mkdir -p "$dir"
adb devices -l >"$dir/adb-devices.txt"
adb_phone shell getprop ro.build.fingerprint >"$dir/phone-build-fingerprint.txt"
adb_watch shell getprop ro.build.fingerprint >"$dir/watch-build-fingerprint.txt"
adb_phone shell dumpsys package "$PACKAGE_NAME" >"$dir/phone-package-dumpsys-before.txt" || true
adb_watch shell dumpsys package "$WATCH_PACKAGE_NAME" >"$dir/watch-package-dumpsys-before.txt" || true
adb_phone logcat -c
adb_watch logcat -c
adb_phone logcat -v threadtime >"$dir/phone-logcat.txt" 2>&1 &
echo "$!" >"$dir/phone-logcat.pid"
adb_watch logcat -v threadtime >"$dir/watch-logcat.txt" 2>&1 &
echo "$!" >"$dir/watch-logcat.pid"
cat >"$dir/steps.md" <<EOF
# Watch companion manual QA
Date: $(date -u +"%Y-%m-%d %H:%M:%SZ")
Phone package: $PACKAGE_NAME
Watch package: $WATCH_PACKAGE_NAME
## Preconditions
- Phone and watch connected through adb.
- Same GameTime app version installed on both.
- Watch paired to the phone and reachable.
## Manual flow
1. Launch GameTime on the phone.
2. Start a workout from the phone.
3. Validate that the active session is projected to the watch.
4. Validate visible metrics on watch, including steps if available.
5. Trigger at least one action from the watch that must affect the phone session.
6. Validate phone UI updates correctly after the watch action.
7. Finish the workout and validate the watch teardown / final state.
## Evidence to collect
- Screenshot(s) on phone and watch while a session is active.
- Notes on connection status and any visible lag.
- Notes on step visibility if data is present.
- Final verdict on session projection and round-trip actions.
EOF
echo "$dir"
}
stop_capture() {
local dir="${1:-}"
[[ -n "$dir" ]] || {
usage >&2
exit 2
}
require_adb
[[ -d "$dir" ]] || {
echo "Artifact directory not found: $dir" >&2
exit 1
}
[[ -f "$dir/phone-logcat.pid" ]] && kill "$(cat "$dir/phone-logcat.pid")" >/dev/null 2>&1 || true
[[ -f "$dir/watch-logcat.pid" ]] && kill "$(cat "$dir/watch-logcat.pid")" >/dev/null 2>&1 || true
adb_phone shell dumpsys package "$PACKAGE_NAME" >"$dir/phone-package-dumpsys-after.txt" || true
adb_watch shell dumpsys package "$WATCH_PACKAGE_NAME" >"$dir/watch-package-dumpsys-after.txt" || true
cat <<EOF
Watch companion manual QA artifacts finalized in:
$dir
Archive expected:
- adb-devices.txt
- phone-build-fingerprint.txt
- watch-build-fingerprint.txt
- phone-logcat.txt
- watch-logcat.txt
- steps.md
EOF
}
case "${1:-}" in
start)
start_capture
;;
stop)
shift
stop_capture "${1:-}"
;;
*)
usage
exit 2
;;
esac