1111 ALPINE_LATEST : " 3.22"
1212 DEBIAN_LATEST : " trixie"
1313 UBUNTU_LATEST : " 24.04"
14- RASPBIAN_LATEST : " trixie"
1514 PYTHON_LATEST : " 3.13"
1615
1716jobs :
2221 architectures_alpine : ${{ steps.info_alpine.outputs.architectures }}
2322 architectures_debian : ${{ steps.info_debian.outputs.architectures }}
2423 architectures_ubuntu : ${{ steps.info_ubuntu.outputs.architectures }}
25- architectures_raspbian : ${{ steps.info_raspbian.outputs.architectures }}
2624 release : ${{ steps.version.outputs.version }}
2725 steps :
2826 - name : Checkout the repository
4846 with :
4947 path : " ${{ github.workspace }}/ubuntu"
5048
51- - name : Get information Raspbian
52- id : info_raspbian
53- uses : home-assistant/actions/helpers/info@master
54- with :
55- path : " ${{ github.workspace }}/raspbian"
56-
5749 - name : Get version
5850 id : version
5951 uses : home-assistant/actions/helpers/version@master
6355 build_alpine :
6456 name : Build ${{ matrix.arch }} alpine ${{ matrix.version }} base image
6557 needs : init
66- runs-on : *runs-on-ubuntu
58+ runs-on : ${{ matrix.os }}
6759 permissions : &permissions
6860 contents : read
6961 id-token : write
7264 matrix :
7365 arch : ${{ fromJson(needs.init.outputs.architectures_alpine) }}
7466 version : ["3.20", "3.21", "3.22"]
67+ include : &matrix-include-build
68+ - os : *runs-on-ubuntu
69+ - arch : aarch64
70+ os : ubuntu-24.04-arm
7571 steps :
7672 - &checkout
7773 name : Checkout the repository
10399 - name : Build base image
104100 uses :
home-assistant/[email protected] 105101 with :
102+ image : ${{ matrix.arch }}
106103 args : |
107104 $BUILD_ARGS \
108105 --${{ matrix.arch }} \
@@ -114,12 +111,13 @@ jobs:
114111 build_debian :
115112 name : Build ${{ matrix.arch }} debian ${{ matrix.version }} base image
116113 needs : init
117- runs-on : *runs-on-ubuntu
114+ runs-on : ${{ matrix.os }}
118115 permissions : *permissions
119116 strategy :
120117 matrix :
121118 arch : ${{ fromJson(needs.init.outputs.architectures_debian) }}
122119 version : ["bookworm", "trixie"]
120+ include : *matrix-include-build
123121 steps :
124122 - *checkout
125123 - *login-container-registry
@@ -141,6 +139,7 @@ jobs:
141139 - name : Build base image
142140 uses :
home-assistant/[email protected] 143141 with :
142+ image : ${{ matrix.arch }}
144143 args : |
145144 $BUILD_ARGS \
146145 --${{ matrix.arch }} \
@@ -153,12 +152,13 @@ jobs:
153152 build_ubuntu :
154153 name : Build ${{ matrix.arch }} ubuntu ${{ matrix.version }} base image
155154 needs : init
156- runs-on : *runs-on-ubuntu
155+ runs-on : ${{ matrix.os }}
157156 permissions : *permissions
158157 strategy :
159158 matrix :
160159 arch : ${{ fromJson(needs.init.outputs.architectures_ubuntu) }}
161160 version : ["16.04", "18.04", "20.04", "22.04", "24.04"]
161+ include : *matrix-include-build
162162 steps :
163163 - *checkout
164164 - *login-container-registry
@@ -180,6 +180,7 @@ jobs:
180180 - name : Build base image
181181 uses :
home-assistant/[email protected] 182182 with :
183+ image : ${{ matrix.arch }}
183184 args : |
184185 $BUILD_ARGS \
185186 --${{ matrix.arch }} \
@@ -188,63 +189,18 @@ jobs:
188189 --release ${{ needs.init.outputs.release }} \
189190 --base ${{ matrix.version }}
190191
191- build_raspbian :
192- name : Build ${{ matrix.arch }} raspbian ${{ matrix.version }} base image
193- needs : init
194- runs-on : *runs-on-ubuntu
195- permissions : *permissions
196- strategy :
197- matrix :
198- arch : ${{ fromJson(needs.init.outputs.architectures_raspbian) }}
199- version : ["bookworm", "trixie"]
200- steps :
201- - *checkout
202- - *login-container-registry
203-
204- - name : Set build arguments
205- shell : bash
206- run : |
207- if [[ "${{ github.event_name }}" == "release" ]]; then
208- BUILD_ARGS="--additional-tag ${{ matrix.version }}-${{ github.event.release.tag_name }}"
209- if [[ "${{ env.RASPBIAN_LATEST }}" != "${{ matrix.version }}" ]]; then
210- BUILD_ARGS="$BUILD_ARGS --no-latest"
211- fi
212- else
213- BUILD_ARGS="--test"
214- fi
215-
216- echo "BUILD_ARGS=$BUILD_ARGS" >> $GITHUB_ENV
217-
218- - name : Build base image
219- uses :
home-assistant/[email protected] 220- with :
221- args : |
222- $BUILD_ARGS \
223- --${{ matrix.arch }} \
224- --target /data/raspbian \
225- --cosign \
226- --release ${{ needs.init.outputs.release }} \
227- --version-from ${{ matrix.version }}-slim \
228- --base ${{ matrix.version }}
229-
230192 build_python :
231193 name : Build ${{ matrix.arch }} alpine ${{ matrix.version }} - python ${{ matrix.python }} base image
232194 needs : [init, build_alpine]
233- runs-on : *runs-on-ubuntu
195+ runs-on : ${{ matrix.os }}
234196 permissions : *permissions
235197 strategy :
236198 fail-fast : false
237199 matrix :
238200 arch : ${{ fromJson(needs.init.outputs.architectures_alpine) }}
239201 version : ["3.20", "3.21", "3.22"]
240202 python : ["3.12", "3.13", "3.14"]
241- exclude :
242- - python : " 3.14"
243- arch : " armv7"
244- - python : " 3.14"
245- arch : " armhf"
246- - python : " 3.14"
247- arch : " i386"
203+ include : *matrix-include-build
248204 steps :
249205 - *checkout
250206 - *login-container-registry
@@ -266,6 +222,7 @@ jobs:
266222 - name : Build base image
267223 uses :
home-assistant/[email protected] 268224 with :
225+ image : ${{ matrix.arch }}
269226 args : |
270227 $BUILD_ARGS \
271228 --${{ matrix.arch }} \
0 commit comments