Repository navigation
Conversation
Add a 'runtime' target without build-essential/ccache (~250 MB smaller) for use as the final image in multi-stage ESPHome builds. The 'base' target retains build-essential and is used during pip install to compile native Python C extensions. Similarly, 'ha-addon-runtime' provides the HA add-on base without build tools, while 'ha-addon' keeps them for the build stage. PlatformIO does not need the host GCC — it downloads its own cross-compilers (xtensa, arm-none-eabi) at compile time. Tested locally: ESP32 firmware compiles successfully in the slim image.
|
CI is red |
Likely cause: removed |
|
|
esphbot
left a comment
There was a problem hiding this comment.
Warning
Important issues found.
- Dropping
BUILD_OSfrom the integration-test build probably breaks CI
|
Fixed in 4378cee: each target now exports to its own cache ref, and the description covers the pin bumps. The |
PR Review — Add runtime image targets without build toolchainReady to merge. The earlier blocker was dismissed by a maintainer, and the two findings left are non-blocking. What this PR gets right:
Status of earlier findings:
Still open, both non-blocking:
✅ Resolved since last review (1)Previously-flagged issues verified fixed
🟢 Suggestions
1. Nothing tests the local runtime images
|
esphbot
left a comment
There was a problem hiding this comment.
Tip
No blocking issues found — ready to merge.
Adds
runtimeandha-addon-runtimeimage targets that carry everything ESPHome needs at run time but not the host compiler toolchain, so esphome/esphome#17853 can build its Python environment on the full image and ship only the slim one.debian-runtime-<version>anddebian-ha-addon-runtime-<version>; the existingdebian-<version>anddebian-ha-addon-<version>tags keep the same package set and entrypoint.debian/Dockerfileand the build workflow; the companion ESPHome change is Multi-stage Docker build — reduce image size by ~34% esphome#17853, which needs a docker-base release with these tags before it can go green.Notes
curl,jq,xz-utils); the pull request CI builds the images locally without the registry cache, which is where the stale pins failed.BUILD_OSbuild argument was dropped from the integration test because ESPHome's Dockerfile no longer declares it (it only builds on the debian base); passing it would only produce an unused-argument warning.cache-debian-<target>), so the last target's export no longer evicts the toolchain layer thebasetarget needs.