fix(sbx-gits): el instalador y el smoke oficiales contra los servidores reales (API de Adoptium, URLs/checksums medidos) + cierre del smoke — HOMELAB-2648 (R105+R108+R109) #794

Merged
pi-landing merged 3 commits from plane/HOMELAB-2648-t7-fix-real-apis into live 2026-11-04 03:57:03 +00:00
Collaborator

T7 fix (R105+R108+R109) — el instalador y el smoke oficiales, probados contra lo real

Solo tools/ de sbx-gits, docs/gits-sbx/ y scripts/gits-sbx-epic-test.sh. El ConfigMap sbx-gits-tools se regenera al sincronizar (volumen sin subPath — llega al pod SIN reinicio).

Evidencia 1 — la API real de Adoptium (medida con curl, sin bajar el binario)

  • Endpoint del PIN /v3/assets/version/17.0.21%2B9?… → HTTP 200 y la respuesta trae [].binaries[0].package.link / .binaries[0].checksum (la forma que el instalador viejo NO leía: leía .[0].binary.package.*, que solo da el fallback /v3/assets/latest/17/hotspot).
  • Fix: el instalador lee AMBAS formas (binaries[0] primero); respuesta no-JSON → FAIL claro con el cuerpo guardado en logs/adoptium-jq.err (no revienta en jq).

Evidencia 2 — cada descarga contra su servidor real (HEAD 200 + rango 206, sin bajar GB)

pieza URL (real, comprobada) tamaño checksum comprobado
JDK 17.0.21+9 …/jdk-17.0.21%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.21_9.tar.gz 193594705 B sha256 8b9b611d917e3dfd8419d3566b5949226f69b052fed7e109c1368add1dfe8711 (= API = .sha256.txt)
cmdline-tools 11076708 …/commandlinetools-linux-11076708_latest.zip 153607504 B sha1 d313adb7aedccf6cf0cfca51ec180f0059f5f8f8 (repository2-2.xml; Google no publica .sha256 — el sha256 fijo es el de las imágenes del runner)
platform-36 …/platform-36_r02.zip 65878410 B sha1 2c1a80dd4d9f7d0e6dd336ec603d9b5c55a6f576
build-tools 36 …/build-tools_r36_linux.zip 63737259 B sha1 b0b6376977657e8ad9b969bacf4093601da2c6fb
platform-tools r37.0.1 …/platform-tools_r37.0.1-linux.zip 9054187 B sha1 477254aa5f903c15cf51001717bdf347fb6b53e0
NDK r28c …/android-ndk-r28c-linux.zip 722261334 B sha1 a7b54a5de87fecd125a17d54f73c446199e72a64
zig 0.15.2 (R108) ziglang.org/download/index.json → tarball — sha256 leído del propio index.json y verificado antes de extraer (medido 02aa270f…f93239)
manifiestos sdkmanager repository2-3.xml, addons_list-5.xml, addon2-3.xml, sys-img2-3.xml — 200, los 4 paquetes existen

Gradle no lo baja el instalador (services.gradle.org 200; la versión la fija el wrapper del repo — se valida en el pod).

Evidencia 3 — la corrida real en el pod (E1, informes fuente/t7-e1-05/07-report.md)

  • R108 (copia parcheada): emulador arranca y responde por adb; los 7 huecos corrían el SMOKE: FAIL (unzip ausente, HOME de adb rc=134, zig ausente, cache nativo, flavors, doble serial, fixture SSH).
  • R109 (oficial): SMOKE: OK, rc=0 — [connected-test]: OK — 2 tests de instrumentación PASAN en el emulador (incl. HelloFixtureTest.fixtureSshByBanner… leyendo el banner del fixture por 10.0.2.2:2222). Tiempos medidos: assemble 2.1 min, tests 0.4 min, total 2.5 min (boot=0: el emulador ya estaba arriba; el smoke oficial trae --cold-boot para medir el frío).

Lo que cambia en el oficial (R108+R109)

zipfile/jar sin unzip · HOME/ANDROID_USER_HOME bajo /home/ld/work (adb rc=134) · zig 0.15.2 con checksum · seed del cache nativo (SEED_NATIVE=1 o error claro con el comando) · CONNECTED_TASK/TEST_VARIANT por env (default dev, sin shim) · un solo ANDROID_SERIAL · fixture SSH nativo sin docker (auto/topology/native/none) · flock + verificar/reparar del cache nativo compartido · --cold-boot.

Verify local (sustituto de la corrida completa aquí, que sería en el QLC)

bash scripts/gits-sbx-epic-test.sh → RESULT: ok (340 checks, 0 skipped, 0 pending) — 11 checks de la sección 12 EJECUTAN el código real sobre fixtures en /tmp (vía nativa con/sin sshd, cold-boot con adb de mentira, cache pisado y reparado, shim check). El smoke/boot real queda verificado en el pod (Evidencia 3).

## T7 fix (R105+R108+R109) — el instalador y el smoke oficiales, probados contra lo real Solo `tools/` de sbx-gits, `docs/gits-sbx/` y `scripts/gits-sbx-epic-test.sh`. El ConfigMap `sbx-gits-tools` se regenera al sincronizar (volumen sin subPath — llega al pod SIN reinicio). ### Evidencia 1 — la API real de Adoptium (medida con curl, sin bajar el binario) - Endpoint del PIN `/v3/assets/version/17.0.21%2B9?…` → HTTP 200 y la respuesta trae `[].binaries[0].package.link` / `.binaries[0].checksum` (la forma que el instalador viejo NO leía: leía `.[0].binary.package.*`, que solo da el fallback `/v3/assets/latest/17/hotspot`). - Fix: el instalador lee AMBAS formas (`binaries[0]` primero); respuesta no-JSON → FAIL claro con el cuerpo guardado en `logs/adoptium-jq.err` (no revienta en jq). ### Evidencia 2 — cada descarga contra su servidor real (HEAD 200 + rango 206, sin bajar GB) | pieza | URL (real, comprobada) | tamaño | checksum comprobado | |---|---|---|---| | JDK 17.0.21+9 | `…/jdk-17.0.21%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.21_9.tar.gz` | 193594705 B | sha256 `8b9b611d917e3dfd8419d3566b5949226f69b052fed7e109c1368add1dfe8711` (= API = `.sha256.txt`) | | cmdline-tools 11076708 | `…/commandlinetools-linux-11076708_latest.zip` | 153607504 B | sha1 `d313adb7aedccf6cf0cfca51ec180f0059f5f8f8` (repository2-2.xml; Google no publica .sha256 — el sha256 fijo es el de las imágenes del runner) | | platform-36 | `…/platform-36_r02.zip` | 65878410 B | sha1 `2c1a80dd4d9f7d0e6dd336ec603d9b5c55a6f576` | | build-tools 36 | `…/build-tools_r36_linux.zip` | 63737259 B | sha1 `b0b6376977657e8ad9b969bacf4093601da2c6fb` | | platform-tools r37.0.1 | `…/platform-tools_r37.0.1-linux.zip` | 9054187 B | sha1 `477254aa5f903c15cf51001717bdf347fb6b53e0` | | NDK r28c | `…/android-ndk-r28c-linux.zip` | 722261334 B | sha1 `a7b54a5de87fecd125a17d54f73c446199e72a64` | | zig 0.15.2 (R108) | `ziglang.org/download/index.json` → tarball | — | sha256 leído del propio index.json y verificado antes de extraer (medido 02aa270f…f93239) | | manifiestos sdkmanager | `repository2-3.xml`, `addons_list-5.xml`, `addon2-3.xml`, `sys-img2-3.xml` | — | 200, los 4 paquetes existen | Gradle no lo baja el instalador (`services.gradle.org` 200; la versión la fija el wrapper del repo — se valida en el pod). ### Evidencia 3 — la corrida real en el pod (E1, informes `fuente/t7-e1-05/07-report.md`) - R108 (copia parcheada): emulador arranca y responde por adb; los 7 huecos corrían el SMOKE: FAIL (unzip ausente, HOME de adb rc=134, zig ausente, cache nativo, flavors, doble serial, fixture SSH). - R109 (oficial): **`SMOKE: OK`, rc=0 — `[connected-test]: OK` — 2 tests de instrumentación PASAN en el emulador** (incl. `HelloFixtureTest.fixtureSshByBanner…` leyendo el banner del fixture por `10.0.2.2:2222`). Tiempos medidos: **assemble 2.1 min, tests 0.4 min, total 2.5 min** (boot=0: el emulador ya estaba arriba; el smoke oficial trae `--cold-boot` para medir el frío). ### Lo que cambia en el oficial (R108+R109) zipfile/jar sin unzip · `HOME`/`ANDROID_USER_HOME` bajo `/home/ld/work` (adb rc=134) · zig 0.15.2 con checksum · seed del cache nativo (`SEED_NATIVE=1` o error claro con el comando) · `CONNECTED_TASK`/`TEST_VARIANT` por env (default `dev`, sin shim) · un solo `ANDROID_SERIAL` · fixture SSH **nativo sin docker** (auto/topology/native/none) · flock + verificar/reparar del cache nativo compartido · `--cold-boot`. ### Verify local (sustituto de la corrida completa aquí, que sería en el QLC) `bash scripts/gits-sbx-epic-test.sh` → **RESULT: ok (340 checks, 0 skipped, 0 pending)** — 11 checks de la sección 12 EJECUTAN el código real sobre fixtures en /tmp (vía nativa con/sin sshd, cold-boot con adb de mentira, cache pisado y reparado, shim check). El smoke/boot real queda verificado en el pod (Evidencia 3).
T7-fix(R109): cierre del smoke oficial — fixture SSH nativo sin docker, CONNECTED_TASK por env sin shim, lock/cache por worktree del cache nativo, --cold-boot, T7[diff] admite el fix de tools/ (HOMELAB-2648)
All checks were successful
0/0 projects applied successfully.
CI Review / runner-manifest-test (pull_request) Successful in 3s
CI Review / helm-validate (pull_request) Successful in 10s
CI Review / receiver-test (pull_request) Successful in 6s
Lint & Validate / shellcheck (pull_request) Successful in 7s
CI Review / alert-receiver-test (pull_request) Successful in 21s
Build sbx-sendrast Sandbox Image / build-and-push (pull_request) Successful in 12s
Lint & Validate / yaml-lint (pull_request) Successful in 16s
CI Review / record-sql-test (pull_request) Successful in 1m45s
Lint & Validate / terraform-validate (pull_request) Successful in 3m21s
CI Review / cockpit-test (pull_request) Successful in 5m34s
CI Review / dispatcher-test (pull_request) Successful in 6m24s
CI Review / cockpit-e2e (pull_request) Successful in 7m32s
1895f104c1
pi-landing deleted branch plane/HOMELAB-2648-t7-fix-real-apis 2026-11-04 03:57:03 +00:00
Sign in to join this conversation.
No reviewers
No labels
operator-review
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Homelab/infra-core!794
No description provided.