ci: build a representative variant set + share one PlatformIO home cache
Two CI-infra fixes (backlog item 4):
Representative build matrix. The device-build matrix compiled 6 near-overlapping
variants (12 jobs) yet MISSED the e-paper HAL and AXP2101 compile paths entirely.
Replace it with the 5 variants that cover every compile-time feature branch —
sticks3 (S3/M5PM1/ST7789-DMA/buttons/full debug console), tdeck (S3/keyboard/
touch/trackball/SD/GPS), cores3_se (S3/AXP2101/PSRAM), m5core_ink (classic-ESP32
xtensa + e-paper, 4 MB no-OTA), m5stack_gray (classic-ESP32 + ST7789 full-frame
polling). Repoint the design-token guard from m5stickc_plus2 to sticks3, and add
the missing install_idf602.sh step to the tag-only release job (same latent
UnknownPackageError the other jobs had).
Shared PlatformIO home cache. ~/.platformio (the espressif32 platform, the ~1.9 GB
ESP-IDF 6.0.2 framework, the toolchains) is identical for every variant, but each
matrix job cached its own ~2 GB copy under a per-env key — ~10 duplicates that
overflowed GitHub's 10 GB repo cache limit and caused intermittent cache-save
failures (e.g. the cardputer_debug Post-Cache flake). Cache it once under a shared
repo-scoped key used by every device-building job across ci/codeql/quality, with a
small per-variant .pio for build output. The host native job keeps its own key
(no device framework).
Claude-Session: https://claude.ai/code/session_01SV58JXhfxhhc9DC6vdjBo4
ci: build a representative variant set + share one PlatformIO home cache
Two CI-infra fixes (backlog item 4):
Representative build matrix. The device-build matrix compiled 6 near-overlapping
variants (12 jobs) yet MISSED the e-paper HAL and AXP2101 compile paths entirely.
Replace it with the 5 variants that cover every compile-time feature branch —
sticks3 (S3/M5PM1/ST7789-DMA/buttons/full debug console), tdeck (S3/keyboard/
touch/trackball/SD/GPS), cores3_se (S3/AXP2101/PSRAM), m5core_ink (classic-ESP32
xtensa + e-paper, 4 MB no-OTA), m5stack_gray (classic-ESP32 + ST7789 full-frame
polling). Repoint the design-token guard from m5stickc_plus2 to sticks3, and add
the missing install_idf602.sh step to the tag-only release job (same latent
UnknownPackageError the other jobs had).
Shared PlatformIO home cache. ~/.platformio (the espressif32 platform, the ~1.9 GB
ESP-IDF 6.0.2 framework, the toolchains) is identical for every variant, but each
matrix job cached its own ~2 GB copy under a per-env key — ~10 duplicates that
overflowed GitHub's 10 GB repo cache limit and caused intermittent cache-save
failures (e.g. the cardputer_debug Post-Cache flake). Cache it once under a shared
repo-scoped key used by every device-building job across ci/codeql/quality, with a
small per-variant .pio for build output. The host native job keeps its own key
(no device framework).
Claude-Session: https://claude.ai/code/session_01SV58JXhfxhhc9DC6vdjBo4
ci: build a representative variant set + share one PlatformIO home cache
Two CI-infra fixes (backlog item 4):
Representative build matrix. The device-build matrix compiled 6 near-overlapping
variants (12 jobs) yet MISSED the e-paper HAL and AXP2101 compile paths entirely.
Replace it with the 5 variants that cover every compile-time feature branch —
sticks3 (S3/M5PM1/ST7789-DMA/buttons/full debug console), tdeck (S3/keyboard/
touch/trackball/SD/GPS), cores3_se (S3/AXP2101/PSRAM), m5core_ink (classic-ESP32
xtensa + e-paper, 4 MB no-OTA), m5stack_gray (classic-ESP32 + ST7789 full-frame
polling). Repoint the design-token guard from m5stickc_plus2 to sticks3, and add
the missing install_idf602.sh step to the tag-only release job (same latent
UnknownPackageError the other jobs had).
Shared PlatformIO home cache. ~/.platformio (the espressif32 platform, the ~1.9 GB
ESP-IDF 6.0.2 framework, the toolchains) is identical for every variant, but each
matrix job cached its own ~2 GB copy under a per-env key — ~10 duplicates that
overflowed GitHub's 10 GB repo cache limit and caused intermittent cache-save
failures (e.g. the cardputer_debug Post-Cache flake). Cache it once under a shared
repo-scoped key used by every device-building job across ci/codeql/quality, with a
small per-variant .pio for build output. The host native job keeps its own key
(no device framework).
Claude-Session: https://claude.ai/code/session_01SV58JXhfxhhc9DC6vdjBo4
ci: build a representative variant set + share one PlatformIO home cache
Two CI-infra fixes (backlog item 4):
Representative build matrix. The device-build matrix compiled 6 near-overlapping
variants (12 jobs) yet MISSED the e-paper HAL and AXP2101 compile paths entirely.
Replace it with the 5 variants that cover every compile-time feature branch —
sticks3 (S3/M5PM1/ST7789-DMA/buttons/full debug console), tdeck (S3/keyboard/
touch/trackball/SD/GPS), cores3_se (S3/AXP2101/PSRAM), m5core_ink (classic-ESP32
xtensa + e-paper, 4 MB no-OTA), m5stack_gray (classic-ESP32 + ST7789 full-frame
polling). Repoint the design-token guard from m5stickc_plus2 to sticks3, and add
the missing install_idf602.sh step to the tag-only release job (same latent
UnknownPackageError the other jobs had).
Shared PlatformIO home cache. ~/.platformio (the espressif32 platform, the ~1.9 GB
ESP-IDF 6.0.2 framework, the toolchains) is identical for every variant, but each
matrix job cached its own ~2 GB copy under a per-env key — ~10 duplicates that
overflowed GitHub's 10 GB repo cache limit and caused intermittent cache-save
failures (e.g. the cardputer_debug Post-Cache flake). Cache it once under a shared
repo-scoped key used by every device-building job across ci/codeql/quality, with a
small per-variant .pio for build output. The host native job keeps its own key
(no device framework).
Claude-Session: https://claude.ai/code/session_01SV58JXhfxhhc9DC6vdjBo4