Drop deprecated architectures, build aarch64 on ARM runners#324
Conversation
Do not build base images for deprecated architectures. This means removal of build for all armv7, armhf and i386 image variants. Since there is no Raspbian image for any of the supported architectures, these base images are removed completely.
As we're now effectively building only aarch64 or amd64, we can simply pass the arch to the builder image argument.
7d1f6d8 to
3c59f55
Compare
| DEBIAN_LATEST: "trixie" | ||
| UBUNTU_LATEST: "24.04" | ||
| RASPBIAN_LATEST: "trixie" | ||
| PYTHON_LATEST: "3.13" |
There was a problem hiding this comment.
| PYTHON_LATEST: "3.13" | |
| PYTHON_LATEST: "3.14" |
The default for Python should be updated to 3.14. It was deferred previously as 3.14 was only added from amd64 and aarch64.
There was a problem hiding this comment.
Maybe let's do it as a separate PR, so it's more prominent in the changelog?
| | aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 | | ||
| | amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 | |
There was a problem hiding this comment.
| | aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 | | |
| | amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.13-alpine3.22 | | |
| | aarch64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.14-alpine3.22 | | |
| | amd64-base-python | Alpine | 3.12, 3.13, 3.14 | 3.12-alpine3.20, 3.12-alpine3.21, 3.12-alpine3.22, 3.13-alpine3.20, 3.13-alpine3.21, 3.13-alpine3.22, 3.14-alpine3.20, 3.14-alpine3.21, 3.14-alpine3.22 | 3.14-alpine3.22 | |
| name: Build ${{ matrix.arch }} alpine ${{ matrix.version }} base image | ||
| needs: init | ||
| runs-on: *runs-on-ubuntu | ||
| runs-on: &builder-runs-on ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} |
There was a problem hiding this comment.
| runs-on: &builder-runs-on ${{ matrix.arch == 'aarch64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} | |
| runs-on: ${{ matrix.os }} |
I'd suggest to use matrix.include instead. This looks cleaner than the ternary expression here. Will leave a suggestion below.
There was a problem hiding this comment.
IMHO it's a matter of personal preference, I find this more readable than wrapping my head around how the matrix looks like with overrides and additions in include - although with just two combinations it's not that much convoluted.
There was a problem hiding this comment.
matrix.include is more durable. Add a comment if you need to explain the code what is the expected range of values.
|
@cdce8p Implemented your suggestions. I'll wait with the bump to Python 3.14 by default after this gets merged (which we can already do tomorrow), so we don't have to run the slow and unnecessary builds. |
Works for me! The changes here look good, can't wait until we finally drop these. One side note, would you mind removing the |
After home-assistant/docker-base#324 there won't be base image builds for the deprecated architectures. Techically we could still build an image here for those architectures by using the last available tag (`*-2025.11.1`), but since there's currently no need for that, simply drop them.
|
Core 2025.11.3 is being shipped, so let's merge this! |
Do not build base images for deprecated architectures. This means removal of build for all armv7, armhf and i386 image variants. Since there is no Raspbian image for any of the supported architectures, these base images are removed completely.
To make builds faster, aarch64 images are now built on the arm runners.
Not to be merged before last 2025.11.x Core patch release, in case that we need to update the base image for a bug fix.