92
92
- name : Generate build matrix
93
93
id : set-matrix
94
94
run : |
95
- comma=""
96
95
echo -n "matrix={\"distro\": [" >> $GITHUB_OUTPUT
96
+ comma=""
97
97
if [[ ${{ inputs.rocky-linux-9 }} == 'true' ]]; then
98
98
echo -n "$comma\"rocky\"" >> $GITHUB_OUTPUT
99
99
comma=", "
@@ -102,7 +102,7 @@ jobs:
102
102
echo -n "$comma\"ubuntu\"" >> $GITHUB_OUTPUT
103
103
comma=", "
104
104
fi
105
- echo "]}" >> $GITHUB_OUTPUT
105
+ echo "], \"arch\": [\"amd64\", \"aarch64\"] }" >> $GITHUB_OUTPUT
106
106
107
107
- name : Display container datetime tag
108
108
run : |
@@ -122,6 +122,10 @@ jobs:
122
122
strategy :
123
123
fail-fast : false
124
124
matrix : ${{ fromJson(needs.generate-tag.outputs.matrix) }}
125
+ # Exclude ubuntu aarch64 builds for now
126
+ exclude :
127
+ - distro : ubuntu
128
+ arch : aarch64
125
129
needs :
126
130
- generate-tag
127
131
- runner-selection
@@ -173,7 +177,12 @@ jobs:
173
177
174
178
- name : Get Kolla tag
175
179
id : write-kolla-tag
176
- run : echo "kolla-tag=${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ matrix.distro == 'rocky' && '9' || 'jammy' }}-${{ needs.generate-tag.outputs.datetime_tag }}" >> $GITHUB_OUTPUT
180
+ run : |
181
+ kolla_tag="${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ needs.generate-tag.outputs.datetime_tag }}"
182
+ if [[ "${{ matrix.distro }}" == 'rocky' ]]; then
183
+ kolla_tag="$kolla_tag-${{ matrix.arch }}"
184
+ fi
185
+ echo "kolla-tag=$kolla_tag" >> $GITHUB_OUTPUT
177
186
178
187
- name : Configure localhost as a seed
179
188
run : |
@@ -203,8 +212,11 @@ jobs:
203
212
continue-on-error : true
204
213
run : |
205
214
args="${{ inputs.regexes }}"
215
+ if [[ "${{ matrix.arch }}" = 'aarch64' ]]; then
216
+ args="$args -e kolla_base_arch=${{ matrix.arch }}"
217
+ fi
206
218
args="$args -e kolla_base_distro=${{ matrix.distro }}"
207
- args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
219
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}
208
220
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
209
221
source venvs/kayobe/bin/activate &&
210
222
source src/kayobe-config/kayobe-env --environment ci-builder &&
@@ -217,26 +229,37 @@ jobs:
217
229
run : sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-overcloud.log
218
230
if : inputs.overcloud
219
231
232
+ - name : Copy build configs to output directory
233
+ run : sudo cp -rnL /opt/kayobe/etc/kolla/* image-build-logs/
234
+ if : inputs.overcloud
235
+
236
+ - name : Get Kolla tag for seed images
237
+ id : write-kolla-tag-seed
238
+ run : |
239
+ kolla_tag_seed="${{ needs.generate-tag.outputs.openstack_release }}-${{ matrix.distro }}-${{ needs.generate-tag.outputs.datetime_tag }}"
240
+ echo "kolla-tag-seed=$kolla_tag_seed" >> $GITHUB_OUTPUT
241
+ if : inputs.seed
242
+
220
243
- name : Build kolla seed images
221
244
id : build_seed_images
222
245
continue-on-error : true
223
246
run : |
224
247
args="-e kolla_base_distro=${{ matrix.distro }}"
225
- args="$args -e kolla_tag=${{ steps.write-kolla-tag.outputs.kolla-tag }}"
248
+ args="$args -e kolla_tag=${{ steps.write-kolla-tag-seed .outputs.kolla-tag-seed }}"
226
249
args="$args -e stackhpc_repo_mirror_auth_proxy_enabled=true"
227
250
source venvs/kayobe/bin/activate &&
228
251
source src/kayobe-config/kayobe-env --environment ci-builder &&
229
252
kayobe seed container image build $args
230
253
env :
231
254
KAYOBE_VAULT_PASSWORD : ${{ secrets.KAYOBE_VAULT_PASSWORD }}
232
- if : inputs.seed
255
+ if : inputs.seed && matrix.arch == 'amd64'
233
256
234
257
- name : Copy seed container image build logs to output directory
235
258
run : sudo mv /var/log/kolla-build.log image-build-logs/kolla-build-seed.log
236
259
if : inputs.seed
237
260
238
261
- name : Get built container images
239
- run : docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}" > ${{ matrix.distro }}-container-images
262
+ run : docker image ls --filter "reference=ark.stackhpc.com/stackhpc-dev/*:${{ steps.write-kolla-tag.outputs.kolla-tag }}* " > ${{ matrix.distro }}-container-images
240
263
241
264
- name : Fail if no images have been built
242
265
run : if [ $(wc -l < ${{ matrix.distro }}-container-images) -le 1 ]; then exit 1; fi
@@ -297,7 +320,7 @@ jobs:
297
320
- name : Upload output artifact
298
321
uses : actions/upload-artifact@v4
299
322
with :
300
- name : ${{ matrix.distro }}-logs
323
+ name : ${{ matrix.distro }}-${{ matrix.arch }}- logs
301
324
path : image-build-logs
302
325
retention-days : 7
303
326
if : ${{ !cancelled() }}
0 commit comments