-
Notifications
You must be signed in to change notification settings - Fork 67
Drop deprecated architectures, build aarch64 on ARM runners #324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for preparing this one! Looking forward to dropping these.
Left a few suggestion below.
--
The new Github UI doesn't seem to handle suggestions quite right yet. Not sure they will all apply. Might be best to commit them manually.
| DEBIAN_LATEST: "trixie" | ||
| UBUNTU_LATEST: "24.04" | ||
| RASPBIAN_LATEST: "trixie" | ||
| PYTHON_LATEST: "3.13" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| | 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 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above.
.github/workflows/builder.yml
Outdated
| 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 |
agners
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
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.